Static Single Assignment (SSA) Form
- Each variable has only one definition in the program text.
- It is not a Dynamic Single Assignment Form.
a = 0; a1 = 0;
L: b = a + 1; L: a3 = φ(a1, a2);
c = c + b; → b1 = φ(b0, b2);
a = b * 2; c2 = φ(c0, c1);
if a < N goto L; b2 = a3 + 1;
exit; c1 = c2 + b2;
a2 = b2 * 2;
if a2 < N goto L;
exit;