Relaxed Memory Model Zoo

Operational Release-Acquire/Relaxed RC11 (RAR)
← Back to the map

Operational Release-Acquire/Relaxed RC11 RAR

2019 · Doherty, Dongol, Wehrheim, Derrick · language, formal, operational · operational formalism

An operational reformulation of RC11 supporting release-acquire and relaxed accesses (hence RAR), on top of which the authors build a proof calculus for invariant-based reasoning and mechanically verify mutual-exclusion algorithms.

Properties

Property vector survey-sourced — from Tables 1–2 of the Moiseenko et al. survey, except cells that cite a specific source.

Compilation optimal mapping to
  • yes x86
  • no POWER
  • no Armv7
  • no Armv8
Reordering sound
  • yes Store→Load
  • yes Store→Store
  • yes Load→Load
  • no Load→Store
Elimination sound
  • yes Store/Load
  • yes Store/Store
  • yes Load/Load
  • no Load/Store
Other local transformations
  • no Speculative load intro.
  • yes Roach motel
  • yes Strengthening
  • yes Trace preserving
  • no Common subexpr. elim.
Global transformations
  • yes Register promotion
  • yes Thread inlining
Reasoning guarantees
  • yes External DRF
  • yes Coherence
  • no No undefined behaviour
  • yes In-order execution
  • yes No out-of-thin-air

Ordering relationships

Equivalent to
  • Repaired C11 (RC11) — RAR is an operational reformulation of RC11's release-acquire and relaxed fragment, used as the basis for an invariant-based proof calculus.

References

  • Simon Doherty, Brijesh Dongol, Heike Wehrheim, John Derrick. Verifying C11 Programs Operationally. PPoPP 2019, 2019. doi:10.1145/3293883.3295702
  • Evgenii Moiseenko, Anton Podkopaev, Dmitrii Koznov. A Survey of Programming Language Memory Models. Programming and Computer Software 47(6), pp. 439–456, 2021. doi:10.1134/S0361768821060050