Putting Weak Memory in Order via a Promising Intermediate Representation
Sung-Hwan Lee, Minki Cho, Roy David Margalit, Chung-Kil Hur, Ori Lahav
摘要
We investigate the problem of developing an "in-order" shared-memory concurrency model for languages like C and C++, which executes instructions following their program order, and is thus more amenable to reasoning and verification compared to recent complex proposals with out-of-order execution. We demonstrate that it is possible to fully support non-atomic accesses in an in-order model in a way that validates all compiler optimizations that are performed in single-threaded code (including irrelevant load introduction). The key to doing so is to utilize the distinction between a source model (with catch-fire semantics) and an intermediate representation (IR) model (with undefined value for racy reads) and formally establish the soundness of mapping from source to IR. As for relaxed atomic accesses, an in-order model must forbid load-store reordering. We discuss the rather limited performance impact of this fact and present a pragmatic approach to this problem, which, in the long term, requires a new kind of hardware store instructions for implementing relaxed stores. The source and IR semantics proposed in this paper are based on recent versions of the promising semantics, and the correctness proofs of the mappings from the source to the IR and from the IR to Armv8 are mechanized in Coq. This work is the first to formally relate an in-order source model and an out-of-order IR model with the goal of having an in-order source semantics without any performance overhead for non-atomics.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper4
- How Hard Is Weak-Memory Testing?Soham Chakraborty, Shankara Narayanan Krishna, Umang Mathur, Andreas PavlogiannisPOPL 2024 · 被引用 10 次
- OZZ: Identifying Kernel Out-of-Order Concurrency Bugs with In-Vivo Memory Access ReorderingDae R. Jeong, Yewon Choi, Byoungyoung Lee, Insik Shin 等SOSP 2024 · 被引用 4 次
- Verifying Lock-Free Traversals in Relaxed Memory Separation LogicSunho Park, Jaehwang Jung, Janggun Lee, Jeehoon KangPLDI 2025 · 被引用 1 次
- Arm Weak Memory Consistency on Apple Silicon: What Is It Good For?Yossi Khayet, Adam MorrisonASPLOS 2026
它引用的顶会 Paper11
- RustBelt meets relaxed memoryHoang-Hai Dang, Jacques-Henri Jourdan, Jan-Oliver Kaiser, Derek DreyerPOPL 2020 · 被引用 68 次
- Promising 2.0: global optimizations in relaxed memory concurrencySung-Hwan Lee, Minki Cho, Anton Podkopaev, Soham Chakraborty 等PLDI 2020 · 被引用 48 次
- Pomsets with preconditions: a simple model of relaxed memoryRadha Jagadeesan, Alan Jeffrey, James RielyOOPSLA 2020 · 被引用 28 次
- C11Tester: a race detector for C/C++ atomicsWeiyu Luo, Brian DemskyASPLOS 2021 · 被引用 26 次
- Verifying observational robustness against a c11-style memory modelRoy David Margalit, Ori LahavPOPL 2021 · 被引用 22 次
相关 Paper
- Modular data-race-freedom guarantees in the promising semanticsMinki Cho, Sung-Hwan Lee, Chung-Kil Hur, Ori LahavPLDI 2021 · 被引用 14 次
- Sequential reasoning for optimizing compilers under weak memory concurrencyMinki Cho, Sung-Hwan Lee, Dongjae Lee, Chung-Kil Hur 等PLDI 2022 · 被引用 11 次
- Rely/Guarantee Reasoning for Multicopy Atomic Weak Memory ModelsNicholas Coughlin, Kirsten Winter, Graeme SmithFM 2021 · 被引用 16 次
- An Axiomatic Basis for Computer Programming on the Relaxed Arm-A Architecture: The AxSL LogicAngus Hammond, Zongyuan Liu, Thibaut Pérami, Peter Sewell 等POPL 2024 · 被引用 8 次
- Extending the C/C++ Memory Model with Inline AssemblyPaulo Emílio de Vilhena, Ori Lahav, Viktor Vafeiadis, Azalea RaadOOPSLA 2024 · 被引用 1 次
