if (bExp) if (bExp)
x := 1 x1 := 1
else SSA: else
x := 2 x2 := 2
y := x; y := Phi(x1,x2)
也就是说,您想要在这个位置使用Phi。请注意,可执行代码中没有Phi!根据y是依赖于x1还是x2的信息,您可以在下一步中重写此内容。例如,在以内存为中心的表示中,Phi(x1,x2)告诉您x1和x2应该是指向同一内存位置的两个别名,即y的位置。Phi只是将信息绑定在一起。
if (bExp)
stackframe[y_index] = 1 (y_index being some offset)
else
stackframe[y_index] = 2
nop