我正在遍历基本块中的指令,并且在执行val-> getName()时,指令以及操作数会给出一个空名称。
我正在尝试实现可用的表达式分析,因此我需要弄清楚如何比较两个标签;但是,当然,SSA掩盖了这一点。当前,编译器在-o0上并禁用其他优化。我可以比较var名称的哪些方法?
IE:
a = b + c
b = d + e
b = d + e应该杀死a = b + c,但是由于SSA,比较a = b + c中b的值obj和b = d + e中b的值是不相等的。我怎样才能成功地比较那些?
谢谢!
答案 0 :(得分:1)
在LLVM IR中看到的变量名称是为了方便读者。这些名称将不存在。每个指令都是一个对象,其他指令作为其操作数。您可以使用指令地址来区别其他指令。