Connected call pipeline from pinned interpret/call.rs and step.rs.
Compiler queries, ABI compatibility, and machine leaves are mandatory effects.
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- (Miri.Interpreter.FnArg.Copy a).copyFnArg = a
- (Miri.Interpreter.FnArg.InPlace a).copyFnArg = { op := Miri.Interpreter.Operand.indirect a.mplace, layout := a.layout }
Instances For
- Instance {Other : Type} (fnInstance : CallInstance) : FnVal Other
- Other {Other : Type} (value : Other) : FnVal Other
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Function-kind query after signature normalization, before callee resolution.
- FnPtr : CallFunctionKind
- FnDef (definition : MIR.DefId) (args : Array MIR.GenericArg) : CallFunctionKind
- invalid : CallFunctionKind
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- callee : FnVal Other
- callerAbi : Extern
- callerFnAbi : Option FnABI
- withCallerLocation : Bool
- destination : RuntimeStackPlace P
- target : Option MIR.BasicBlockId
- unwind : MIR.UnwindAction
Instances For
Equations
Instances For
FnABI, ArgABI, Extern preserve complete compiler ABI records supplied
by the caller. No reduced pass-mode or calling-convention enum is invented.
checkArgumentCompat implements source layout_compat AND its eq_abi assertion.
All memory operations must invoke the canonical memory/provenance hooks.
- debugAssertions : Bool
- getFrame : CallM S (Frame P LocalLayout E)
- setFrame : Frame P LocalLayout E → CallM S Unit
- evalOperand : C → MIR.Operand → CallM S (OpTy P)
- evalOperandAt : C → OperandPath → MIR.Operand → CallM S (OpTy P)
- evalPlace : C → MIR.Place → Bool → CallM S (RuntimeStackPlace P)
- placeToOp : C → RuntimeStackPlace P → CallM S (OpTy P)
- forceAllocation : C → RuntimeStackPlace P → CallM S (MPlaceTy P)
- functionSignature : C → LocalLayout → CallM S (Nat × Extern)
- functionKind : MIR.TyId → CallM S CallFunctionKind
- readPointer : C → OpTy P → CallM S (Memory.Pointer (Option P))
- getPtrFn : C → Memory.Pointer (Option P) → CallM S (FnVal Other)
- resolve : C → MIR.DefId → Array MIR.GenericArg → CallM S CallInstance
- fnAbiOfFnPtr : C → LocalLayout → Array MIR.TyId → CallM S FnABI
- fnAbiOfInstance : C → CallInstance → Array MIR.TyId → CallM S FnABI
- requiresCallerLocation : CallInstance → CallM S Bool
- callerLocation : CallM S MIR.SpanRef
- abiCanUnwind : FnABI → Bool
- abiVariadic : FnABI → Bool
- abiFixedCount : FnABI → Nat
- abiArgs : FnABI → Array ArgABI
- abiReturn : FnABI → ArgABI
- sameConvention : FnABI → FnABI → Bool
- isRustCall : Extern → Bool
- rustAbi : Extern
- argLayout : ArgABI → LocalLayout
- argIsIgnore : ArgABI → Bool
- isOneZst : LocalLayout → Bool
- checkTargetFeatures : C → CallInstance → CallM S Unit
- localLayout : C → MIR.LocalId → CallM S LocalLayout
- localSpan : MIR.Body → MIR.LocalId → CallM S MIR.SpanRef
- storageLiveDyn : C → MIR.LocalId → MemPlaceMeta P → CallM S Unit
- copyAllowTransmute : C → OpTy P → RuntimeStackPlace P → CallM S Unit
- withRetagMode {A : Type} : C → TreeBorrows.RetagPolicy.RetagMode → CallM S A → CallM S A
- nonCapturingClosure : C → CallInstance → FnABI → CallM S Bool
- allocateStack : C → LocalLayout → CallM S (MPlaceTy P)
- vaListPtr : C → Array (MPlaceTy P) → CallM S (Memory.Pointer (Option P))
- writeZeroBytes : C → Memory.Pointer (Option P) → ABI.Size → CallM S Unit
- writePointerToMemory : C → Memory.Pointer (Option P) → MPlaceTy P → CallM S Unit
- pushRaw : C → CallInstance → LoadedBody → RuntimeStackPlace P → ReturnContinuation → CallM S Unit
- popRaw : C → CallM S (Frame P LocalLayout E)
- cleanup : C → Bool → Frame P LocalLayout E → CallM S ReturnAction
- callExtra : C → Other → FnABI → Array (FnArg P) → RuntimeStackPlace P → Option MIR.BasicBlockId → MIR.UnwindAction → CallM S Unit
- callIntrinsic : C → CallInstance → Array (OpTy P) → RuntimeStackPlace P → Option MIR.BasicBlockId → MIR.UnwindAction → CallM S (Option CallInstance)
Check intrinsic metadata; fallback must be Item and not must_be_overridden.
- callLlvmIntrinsic : C → CallInstance → Array (OpTy P) → RuntimeStackPlace P → Option MIR.BasicBlockId → CallM S Unit
- findMirOrEvalFn : C → CallInstance → FnABI → Array (FnArg P) → RuntimeStackPlace P → Option MIR.BasicBlockId → MIR.UnwindAction → CallM S (Option (LoadedBody × CallInstance))
- resolveVirtual : C → CallInstance → MIR.DefId → Nat → FnABI → Array (FnArg P) → CallM S (CallInstance × FnABI × Array (FnArg P))
Unwrap DispatchFromDyn newtypes, read pointer without dereferencing, validate dyn tail/vtable, select Method, cross-check fnInstance, thin receiver and ABI type. Kept required until vtable compiler queries and typed pointer construction port.
- resolveDropGlue : C → MIR.TyId → CallM S CallInstance
- fakeUnitReturn : C → CallM S (RuntimeStackPlace 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
- Miri.Interpreter.Call.evalFnCallArgument h choice operand disjoint = Miri.Interpreter.Call.evalFnCallArgumentAt h choice operand disjoint #[]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Argument copy precedes protection; StorageLive precedes evaluating callee place.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source stack.rs allocate_varargs: static callee ABI checks precede
allocation and copy; no in-place protection is performed for varargs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source init_stack_frame, including all four argument initialization arms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One source dispatch, returning a recursive request for intrinsic fallback or virtual dispatch. This avoids hiding recursion in opaque machine callbacks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Unbounded finite dispatch prefixes. This relation has no runner budget;
resource exhaustion of initFnCall says nothing about later UB freedom.
- refl {P S C E Other Extern FnABI ArgABI : Type} {h : CallHooks P S C E Other Extern FnABI ArgABI} {choice : C} (request : CallRequest P Other Extern FnABI) (state : S) : DispatchPrefix h choice request state request state
- next {P S C E Other Extern FnABI ArgABI : Type} {h : CallHooks P S C E Other Extern FnABI ArgABI} {choice : C} {request : CallRequest P Other Extern FnABI} {state : S} {nextRequest : CallRequest P Other Extern FnABI} {nextState : S} {finalRequest : CallRequest P Other Extern FnABI} {finalState : S} (step : initFnCallStep h choice request state = EStateM.Result.ok (some nextRequest) nextState) (rest : DispatchPrefix h choice nextRequest nextState finalRequest finalState) : DispatchPrefix h choice request state finalRequest finalState
Instances For
Source recursive dispatch is executable with an explicit resource budget. Exhaustion is reported, never successful execution or an omitted arm.
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.Call.initFnCall h choice 0 request = throw (Miri.Interpreter.StepError.resourceExhaustion "call dispatch budget exhausted")
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
Equations
- One or more equations did not get rendered due to their size.
Instances For
Canonical Stack adapters: callbacks receive the full machine state, and all stack/machine mutations are installed before returning an error.
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
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
Adapt to ControlFlow.TerminatorHooks while retaining EStateM error state.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.Interpreter.Call.ZeroHooks P S C E Other Extern = Miri.Interpreter.CallHooks P S C E Other Extern (Miri.ABI.FnAbi Miri.MIR.TyId) (Miri.ABI.ArgAbi Miri.MIR.TyId)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source specialization for a zero-argument call whose actual preflight operand is immediate. The preflight equation is an internal composition edge.
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.