Skip to Main content Skip to Navigation
Conference papers

Compiler testing via a theory of sound optimisations in the C11/C++11 memory model

Robin Morisset 1 Pankaj Pawan 2, 1 Francesco Zappa Nardelli 1 
1 Parkas - Parallélisme de Kahn Synchrone
DI-ENS - Département d'informatique - ENS Paris, Inria Paris-Rocquencourt, CNRS - Centre National de la Recherche Scientifique : UMR 8548
Abstract : Compilers sometimes generate correct sequential code but break the concurrency memory model of the programming language: these subtle compiler bugs are observable only when the miscompiled functions interact with concurrent contexts, making them particularly hard to detect. In this work we design a strategy to reduce the hard problem of hunting concurrency compiler bugs to differential testing of sequential code and build a tool that puts this strategy to work. Our first contribution is a theory of sound optimisations in the C11/C++11 memory model, covering most of the optimisations we have observed in real compilers and validating the claim that common compiler optimisations are sound in the C11/C++11 memory model. Our second contribution is to show how, building on this theory, concurrency compiler bugs can be identified by comparing the memory trace of compiled code against a reference memory trace for the source code. Our tool identified several mistaken write introductions and other unexpected behaviours in the latest release of the gcc compiler.
Document type :
Conference papers
Complete list of metadata
Contributor : Francesco Zappa Nardelli Connect in order to contact the contributor
Submitted on : Monday, November 25, 2013 - 5:18:14 PM
Last modification on : Thursday, March 17, 2022 - 10:08:43 AM

Links full text




Robin Morisset, Pankaj Pawan, Francesco Zappa Nardelli. Compiler testing via a theory of sound optimisations in the C11/C++11 memory model. PLDI 2013 - 34th ACM SIGPLAN conference on Programming language design and implementation, Jun 2013, Seattle, WA, United States. pp.187-196, ⟨10.1145/2491956.2491967⟩. ⟨hal-00909083⟩



Record views