值*-> getName返回空字符串LLVM

时间:2019-03-06 20:50:01

标签: c++ llvm llvm-clang

我正在遍历基本块中的指令,并且在执行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的值是不相等的。我怎样才能成功地比较那些?

谢谢!

1 个答案:

答案 0 :(得分:1)

在LLVM IR中看到的变量名称是为了方便读者。这些名称将不存在。每个指令都是一个对象,其他指令作为其操作数。您可以使用指令地址来区别其他指令。