我的 SSA 构造是否正确? (重命名)

Is my construction of SSA correct? (Renaming)

我一直在学习 ssa(静态单一赋值形式),我得到了下图,其中插入了 phi 函数,但该图尚未重命名:

我不得不重命名变量,这就是我得到的:

我不确定这是否正确。我是否正确重命名了变量?这是最小的 ssa 吗?我正在使用 here(Cytron 等人的论文)中的算法来重命名变量。请帮忙! :)

不,您的图表不正确。 phi-functions 和 xy 的重命名是正确的,问题是临时变量 t1t3。当输入块 L1 并且根本不需要任何 phi-functions 时,这些变量是死的。如果您坚持让这些变量具有 phi-functions,则您必须假设这些变量存在并且在输入图形时具有不确定的值。让 t1_0t2_0t3_0 成为这些值并相应地更新重命名的图形。