1
对于我已经实现的理论研究,满足所有路径的恒定传播。由于恒定传播的格子是非分布的,因此预计最大固定点计算和满足所有路径可能会给出不同的结果。任何人都可以提供这样的示例程序。 Q2:还有一个程序,其中llvm中的稀疏条件常量传播通过(-sccp)将无法检测到常量。最大固定点失效的情况
对于我已经实现的理论研究,满足所有路径的恒定传播。由于恒定传播的格子是非分布的,因此预计最大固定点计算和满足所有路径可能会给出不同的结果。任何人都可以提供这样的示例程序。 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
。