[][src]Function cranelift_codegen::verifier::verify_cssa

pub fn verify_cssa(
    func: &Function,
    cfg: &ControlFlowGraph,
    domtree: &DominatorTree,
    liveness: &Liveness,
    virtregs: &VirtRegs,
    errors: &mut VerifierErrors
) -> VerifierStepResult<()>

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 an 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.