Value * -> getName returns 空字符串 LLVM
Value * -> getName returns empty string LLVM
我正在遍历基本块中的指令,在执行 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 的值不相等。我怎样才能成功比较这些?
谢谢!
您在 LLVM IR 中看到的变量名称是为了 reader 方便起见。这些名字将不存在。每条指令都是一个对象,其他指令作为其操作数。您可以使用指令地址来区分其他指令。
我正在遍历基本块中的指令,在执行 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 的值不相等。我怎样才能成功比较这些?
谢谢!
您在 LLVM IR 中看到的变量名称是为了 reader 方便起见。这些名字将不存在。每条指令都是一个对象,其他指令作为其操作数。您可以使用指令地址来区分其他指令。