【问题标题】:Value * -> getName returns empty string LLVMValue * -> getName 返回空字符串 LLVM
【发布时间】:2019-03-06 20:50:01
【问题描述】:

我正在循环一个基本块中的指令,并且在执行 val->getName() 时指令和操作数给出了一个空名称。

我正在尝试实现可用表达式分析,所以我需要弄清楚如何比较两个标签;但当然,SSA 掩盖了这一点。目前,编译器在 -o0 上并禁用了其他优化。有哪些可能的方法可以比较 var 名称?

IE:

a = b + c
b = d + e

b = d + e 应该杀死 a = b + c,但是由于 SSA,比较 a = b + c 中的 b 和 b = d + e 中的 b 的值 obj 不相等。我怎样才能成功地比较它们?

谢谢!

【问题讨论】:

  • 为什么需要变量名?而是比较 Instruction* 指针。

标签: c++ llvm llvm-clang


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 2020-07-11
    • 2015-05-25
    • 2011-05-09
    • 1970-01-01
    相关资源
    最近更新 更多