Repairing Sequential Consistency in C/C++11
The C/C++11 memory model defines the semantics of concurrent memory accesses in C/C++, and in particular supports racy “atomic” accesses at a range of different consistency levels, from very weak consistency (“relaxed”) to strong, sequential consistency (“SC”). Unfortunately, as we observe in this paper, the semantics of SC atomic accesses in C/C++11, as well as in all proposed strengthenings of the semantics, is flawed, in that both suggested compilation schemes to Power are unsound. We propose a better semantics for SC accesses that restores the soundness of the compilation schemes to Power, maintains the DRF-SC guarantee, and provides stronger, more useful, guarantees to SC fences. In addition, we formally prove, for the first time, the correctness of the proposed stronger compilation schemes to Power that preserve load-to-store ordering and avoid “thin-air” reads.
Tue 20 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
16:10 - 17:00 | CorrectnessPLDI Research Papers at Actes, Civil Engineering Chair(s): Joseph Devietti University of Pennsylvania | ||
16:10 25mTalk | Repairing Sequential Consistency in C/C++11 PLDI Research Papers Ori Lahav MPI-SWS, Viktor Vafeiadis MPI-SWS, Germany, Jeehoon Kang Seoul National University, Chung-Kil Hur Seoul National University, Derek Dreyer MPI-SWS Media Attached | ||
16:35 25mTalk | Taming Undefined Behavior in LLVM PLDI Research Papers Juneyoung Lee Seoul National University, Yoonseung Kim Seoul National University (South Korea), Youngju Song Seoul National University, Chung-Kil Hur Seoul National University, Sanjoy Das Azul Systems, David Majnemer Google, John Regehr University of Utah, Nuno P. Lopes Microsoft Research Pre-print Media Attached |