An IR in which every variable is assigned exactly once. Joins in control flow are bridged by ϕ-functions that pick a value based on which predecessor block executed. SSA exposes data-flow directly and makes most optimisations linear.
Key formulas
ϕ-function: x3=ϕ(x1,x2) at a join from blocks B1,B2.
Dominance frontier DF(B): nodes where B does not strictly dominate but does dominate a predecessor — places where ϕ-nodes are inserted.
Cytron et al.’s algorithm: linear in size of dominance frontiers.