Compiler construction 最大固定点失效的情况

Compiler construction 最大固定点失效的情况,compiler-construction,llvm,compiler-optimization,Compiler Construction,Llvm,Compiler Optimization,对于一个理论研究,我已经实现了在恒定传播的所有路径上相遇。由于常数传播的格点是非分布的,所以最大不动点计算和在所有路径上的相遇可能会给出不同的结果。有谁能举一个这样的例子 问题2:还有一个程序,其中llvm中的稀疏条件常量传播过程()将无法检测到常量。示例如下: 使用常量传播方法,x的值在if语句之后不是常量。因此,y的值不是常数。形式上,如果F是最后一个语句的函数,那么我们有F(1⨆ -1) =F(⊤) = ⊤ 对于MOP,y的值是两个可能路径的连接,因此已知为1。形式上为F(1)⨆ F(-1

对于一个理论研究,我已经实现了在恒定传播的所有路径上相遇。由于常数传播的格点是非分布的,所以最大不动点计算和在所有路径上的相遇可能会给出不同的结果。有谁能举一个这样的例子

问题2:还有一个程序,其中llvm中的稀疏条件常量传播过程()将无法检测到常量。

示例如下:

使用常量传播方法,
x
的值在if语句之后不是常量。因此,
y
的值不是常数。形式上,如果
F
是最后一个语句的函数,那么我们有
F(1⨆ -1) =F(⊤) = ⊤

对于MOP,
y
的值是两个可能路径的连接,因此已知为
1
。形式上为
F(1)⨆ F(-1)=1⨆ 1=1

if (...)
    x = 1;
else
    x = -1;
y = x * x;