Function cranelift_codegen::verifier::verify_cssa
source · [−]pub fn verify_cssa(
func: &Function,
cfg: &ControlFlowGraph,
domtree: &DominatorTree,
liveness: &Liveness,
virtregs: &VirtRegs,
errors: &mut VerifierErrors
) -> VerifierStepResult<()>
Expand description
Verify conventional SSA form for func
.
Conventional SSA form is represented in Cranelift with the help of virtual registers:
- Two values are said to be PHI-related if one is a block argument and the other is passed as a branch argument in a location that matches the first value.
- PHI-related values must belong to the same virtual register.
- Two values in the same virtual register must not have overlapping live ranges.
Additionally, we verify this property of virtual registers:
- The values in a virtual register are topologically ordered w.r.t. dominance.
We don’t verify that virtual registers are minimal. Minimal CSSA is not required.