Documentation

Miri.Interpreter.IntrinsicAtomic

Core atomic intrinsic dispatch plus the Miri VClock/weak-memory pipeline. Physical reads/writes must invoke the full interpreter memory/TB/sync hooks; the restricted Unit-extra AtomicScalarMemory component is not promoted to a complete atomic execution. Every finite permitted choice remains explicit.

Equations
Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Instances For
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              Instances For
                Instances For
                  def Miri.Interpreter.IntrinsicAtomic.allowDataRaces {P S C V A : Type} (h : AtomicAccessHooks P S C V) (action : RvalueM S A) :

                  Exact source flag window, including restoration after physical-hook error. Global lenses must view the same global state used by the memory access hooks.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    Source atomic_access_check staging: size-derived alignment, pointer alignment, allocation identity and read-only rules. Actual byte hooks follow.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

                      Commit post-byte/per-clock mutations even when a later byte or clock fails. The state lens must preserve unrelated memory, provenance and borrow metadata.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def Miri.Interpreter.IntrinsicAtomic.load {P S C V : Type} (h : AtomicAccessHooks P S C V) (choice : C) (place : V) (ordering : Concurrency.AtomicOrdering) :
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          def Miri.Interpreter.IntrinsicAtomic.store {P S C V : Type} (h : AtomicAccessHooks P S C V) (choice : C) (place : V) (value : RvalueImmTy P) (ordering : Concurrency.AtomicOrdering) :
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Equations
                            Instances For
                              def Miri.Interpreter.IntrinsicAtomic.rmw {P S C V : Type} [Memory.PointerProvenance P] (h : AtomicAccessHooks P S C V) (choice : C) (place : V) (op : IntrinsicAtomicRmw) (operand : RvalueImmTy P) (ordering : Concurrency.AtomicOrdering) :
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                def Miri.Interpreter.IntrinsicAtomic.compareExchange {P S C V : Type} [Memory.PointerProvenance P] (h : AtomicAccessHooks P S C V) (choice : C) (place : V) (expected newValue : RvalueImmTy P) (weak : Bool) (success failure : Concurrency.AtomicOrdering) :
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  def Miri.Interpreter.IntrinsicAtomic.fence {P S C V : Type} (h : AtomicAccessHooks P S C V) (ordering : Concurrency.AtomicOrdering) (singlethread : Bool) :
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    def Miri.Interpreter.IntrinsicAtomic.pointerBinary {P S C : Type} [Memory.PointerProvenance P] (target : ABI.TargetDataLayout) (ops : ScalarOpsHooks P S C) (isRaw : C → MIR.TyId → RvalueM S Bool) (usizeLayout : C → RvalueM S (ABI.TyAndLayout MIR.TyId)) (choice : C) (op : MIR.BinOp) (left right : RvalueImmTy P) :

                                    Actual Miri operator.rs pointer operations used by atomic pointers. Relative CTFE provenance cannot be substituted for machine addresses. The arithmetic branch keeps the source's usize temporary layout while retaining LHS provenance.

                                    Equations
                                    Instances For
                                      def Miri.Interpreter.IntrinsicAtomic.eval {P S C V : Type} [Memory.PointerProvenance P] (h : IntrinsicAtomicHooks P S C V) (choice : C) (name : String) (args : Array (OpTy P)) (dest : V) (ret : Option MIR.BasicBlockId) :

                                      Ordering generic indexes and volatile-constant evaluation match pinned core atomic.rs. Unknown atomic names preserve the source not-handled result.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For