Module rustc_mir_transform::ssa

source ·
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 we do not track indirect assignments, a local that has its address taken (either by AddressOf or by borrowing) is considered non-SSA. However, it is UB to modify through an immutable borrow of a Freeze local. Those can still be considered to be SSA.