Function cranelift_codegen::verifier::verify_locations
source · [−]pub fn verify_locations(
isa: &dyn TargetIsa,
func: &Function,
cfg: &ControlFlowGraph,
liveness: Option<&Liveness>,
errors: &mut VerifierErrors
) -> VerifierStepResult<()>
Expand description
Verify value locations for func
.
After register allocation, every value must be assigned to a location - either a register or a stack slot. These locations must be compatible with the constraints described by the instruction encoding recipes.
Values can be temporarily diverted to a different location by using the regmove
, regspill
,
and regfill
instructions, but only inside a block.
If a liveness analysis is provided, it is used to verify that there are no active register diversions across control flow edges.