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 (via a borrow or raw
borrow operator) 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.