最大固定点失败的情况

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.