🤖 AI Summary
Strict memory consistency models (e.g., Sequential Consistency, SC) overly constrain compiler and hardware optimizations, preventing certain safety-preserving transformations. Method: We establish a formal link between memory semantics and optimization safety by modeling program optimizations as transitions over execution trace effects, and introduce “completeness”—a novel compositional property that precisely characterizes how memory model evolution ensures optimization safety. Contribution/Results: We prove, for the first time, that the transition from SC to the weaker SC_RR model is complete—demonstrating that weakening consistency does not necessarily increase optimization freedom. This work provides the first verifiable methodology for optimization-driven memory model design, bridging formal semantics with practical compilation.
📝 Abstract
A memory consistency model specifies the allowed behaviors of shared memory concurrent programs. At the language level, these models are known to have a non-trivial impact on the safety of program optimizations, limiting the ability to rearrange/refactor code without introducing new behaviors. Existing programming language memory models try to address this by permitting more (relaxed/weak) concurrent behaviors but are still unable to allow all the desired optimizations. A core problem is that weaker consistency models may also render optimizations unsafe, a conclusion that goes against the intuition of them allowing more behaviors. This exposes an open problem of the compositional interaction between memory consistency semantics and optimizations: which parts of the semantics correspond to allowing/disallowing which set of optimizations is unclear. In this work, we establish a formal foundation suitable enough to understand this compositional nature, decomposing optimizations into a finite set of elementary effects on program execution traces, over which aspects of safety can be assessed. We use this decomposition to identify a desirable compositional property (complete) that would guarantee the safety of optimizations from one memory model to another. We showcase its practicality by proving such a property between Sequential Consistency (SC) and $SC_{RR}$, the latter allowing independent read-read reordering over $SC$. Our work potentially paves way to a new design methodology of programming-language memory models, one that places emphasis on the optimizations desired to be performed.