Function cranelift_codegen::verifier::verify_locations [−][src]
pub fn verify_locations(
isa: &dyn TargetIsa,
func: &Function,
cfg: &ControlFlowGraph,
liveness: Option<&Liveness>,
errors: &mut VerifierErrors
) -> VerifierStepResult<()>
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.