Pinned place.rs local_to_place/eval_place/force_allocation and mutable-local selection. Canonical layouts retain type identity across frame and memory forms. Memory and machine leaves are mandatory stateful operations.
Equations
Instances For
- getFrame : PlaceM S (Frame P LocalLayout E)
- setFrame : Frame P LocalLayout E → PlaceM S Unit
- debugAssertions : Bool
- resolveLayout : C → MIR.LocalId → PlaceM S LocalLayout
- localToOp : C → MIR.LocalId → PlaceM S (OpTy P)
Must invoke canonical immediate-local read hooks outside validation.
- projection : C → PlaceM S (ProjectionCx P)
- deref : C → RuntimePlace P → Bool → PlaceM S (RuntimePlace P)
Normal deref performs pointer validity; simple deref bypass uses readImmediate followed by imm_ptr_to_mplace, precisely the skip flag's source distinction.
- checkPlaceType : C → MIR.Place → RuntimePlace P → PlaceM S Unit
- allocateStack : C → LocalLayout → PlaceM S (MPlaceTy P)
- afterLocalMovedToMemory : C → MIR.LocalId → MPlaceTy P → PlaceM S Unit
Required machine hook: transfer vector clocks and declaration span to fresh allocation extras, preserving provenance/borrow state.
- memoryOffset : C → MemPlace P → ABI.Size → OffsetMode → MemPlaceMeta P → PlaceM S (MemPlace P)
- writeLocalImmediate : C → MIR.LocalId → LocalLayout → Immediate P → PlaceM S Unit
- enforceValidity : C → LocalLayout → PlaceM S Bool
- validate : C → RuntimePlace P → PlaceM S Unit
Instances For
Successful physical/compiler results lift without state effects.
Successful stack results lift without changing interpreter state.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Public source equation for the structural current-frame guard.
Debug-disabled local identity assertions are query-free.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Project local places without allocating or reading their values. Reuse the canonical projector with a local-offset carrier; its memoryOffset is replaced by source PlaceTy's checked Size addition, never a fabricated memory access.
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
Allocation and old-value write precede machine migration, and only then is local storage replaced. Hook failures retain allocation/write effects, with the old local still immediate. Replacement fetches the current frame, preserving machine hook changes to race clocks and borrow metadata.
Equations
- One or more equations did not get rendered due to their size.
Instances For
- memory {P : Type} (place : MPlaceTy P) : MutablePlace P
- immediateLocal {P : Type} (localId : MIR.LocalId) (layout : LocalLayout) : MutablePlace P
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
Read-only capability slice of place-to-operand conversion. Keeping this slice explicit avoids recursive construction of a complete place dictionary.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.Interpreter.placeToOp h choice place = Miri.Interpreter.placeToOpCore h.getFrame h.debugAssertions h.frameIndex h.localToOp h.projection choice place
Instances For
Actual memory-place offset operation with target arithmetic and required live-allocation/provenance resolution, preserving cached misalignment.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whole-state optimized-local writer. The current frame is replaced before machine effects; subsequent hooks operate on that state directly, so canonical race clocks and borrow metadata are never overwritten by an old frame copy.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Concrete stack materialization allocator. Root adjustment and allocation extras must install the canonical provenance, borrow tree and race clocks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Concrete bridge to the existing memory writer. Memory/hooks are committed before propagating errors; callers select canonical machine allocation hooks.
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
Source slow-copy path: destination dynamic size, debug source size (or fixed-part approximation), nonoverlapping memory copy, then cached alignment checks in source/destination order. Memory hooks and partial writes survive UB.
Equations
- One or more equations did not get rendered due to their size.
Instances For
- compatible : LocalLayout → LocalLayout → Except StepError Bool
- hasPadding : LocalLayout → Except StepError Bool
- readRaw : C → OpTy P → PlaceM S (ImmediateOrPlace P)
Resolve dynamic sizes; require sizes compatible; mem_copy nonoverlapping true; check source then destination misalignment only after memory copy.
- validateSource : C → LocalLayout → RuntimePlace P → PlaceM S Unit
Source-layout validation pass includes transmute, recursive policy and reset of provenance/padding. Destination validation is done by PlaceHooks.
Instances For
Connected copy_op_no_validate, with materialization through forceAllocation. All type identity stays canonical; the memory read result supplies only bytes.
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.