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.