最大固定点失败的情况
Case in which Maximum Fixed Point fails
为了进行理论研究,我在所有路径上实施了 Meet 以实现持续传播。由于常数传播的格子是非分配的,因此预计最大固定点计算和满足所有路径可能会给出不同的结果。谁能给个这样的例子程序。
Q2:还有一个程序,在llvm中稀疏条件常数传播传递(-sccp)将无法检测到常数。
取自here的示例:
if (...)
x = 1;
else
x = -1;
y = x * x;
使用常量传播方法,x
的值在 if 语句后不是常量。因此,y
的值不是常数。形式上,如果 F
是最后一条语句的函数,我们有 F(1 ⨆ -1) = F(⊤) = ⊤
.
对于 MOP,y
的值是两个可能路径的连接,因此已知为 1
。正式地,F(1) ⨆ F(-1) = 1 ⨆ 1 = 1
.
为了进行理论研究,我在所有路径上实施了 Meet 以实现持续传播。由于常数传播的格子是非分配的,因此预计最大固定点计算和满足所有路径可能会给出不同的结果。谁能给个这样的例子程序。
Q2:还有一个程序,在llvm中稀疏条件常数传播传递(-sccp)将无法检测到常数。
取自here的示例:
if (...)
x = 1;
else
x = -1;
y = x * x;
使用常量传播方法,x
的值在 if 语句后不是常量。因此,y
的值不是常数。形式上,如果 F
是最后一条语句的函数,我们有 F(1 ⨆ -1) = F(⊤) = ⊤
.
对于 MOP,y
的值是两个可能路径的连接,因此已知为 1
。正式地,F(1) ⨆ F(-1) = 1 ⨆ 1 = 1
.