Blameying / CSCD70_DataFlowAnalysis

1 stars 0 forks source link

Liveness中的phi指令好像需要特殊处理 #1

Open LioTree opened 1 year ago

LioTree commented 1 year ago

你好,Liveness的代码中似乎没有对phi指令进行处理。

比如2-Liveness.ll中的例子,BB3有两个前驱BB2和BB7,并且有两条phi指令:

%.01 = phi i32 [ 1, %2 ], [ %6, %7 ]
%.0 = phi i32 [ %0, %2 ], [ %8, %7 ]

因为%0来自BB2,%6%8来自BB7,所以在计算OUTPUT(BB2)时,应该要把%6%8这两个变量的活跃去掉,而在计算OUTPUT(BB7)时,应该要把%0去掉

Blameying commented 1 year ago

感谢指正! 之前其实有意识到这个问题。我在每个block中对其successor blocks中起始部分的phi指令进行了处理。改动在这个Commit。由于没有找到正确的测试文件,如有纰漏还请指正!