Expand description

We denote as “SSA” the set of locals that verify the following properties: 1/ They are only assigned-to once, either as a function parameter, or in an assign statement; 2/ This single assignment dominates all uses;

As a consequence of rule 2, we consider that borrowed locals are not SSA, even if they are Freeze, as we do not track that the assignment dominates all uses of the borrow.

Structs

  • We often encounter MIR bodies with 1 or 2 basic blocks. In those cases, it’s unnecessary to actually compute dominators, we can just compare block indices because bb0 is always the first block, and in any body all other blocks are always dominated by bb0.
  • SsaVisitor 🔒

Enums

Functions