【问题标题】:How to get Pointer Type in Ascii format llvm?如何获取 Ascii 格式 llvm 的指针类型?
【发布时间】:2018-06-07 10:47:02
【问题描述】:

我一直在尝试使用 llvm IR 中的 cpp API 提取指针类型,以用作指令的元数据。我找到了各种方法来获取指令操作数的指针类型(例如 getPointerElementType()),但结果始终是十六进制格式(0x ....),这没有用,因为它不知道指针是否是 int或浮动等。我主要使用加载指令。 我的问题是如何在 Ascii 中获取指针类型(例如 float 或 i32)?

附:我对 llvm 很陌生,如果我问了一些非常基本的问题,请原谅我。

【问题讨论】:

    标签: c++ llvm llvm-ir


    【解决方案1】:

    我在这里找到了答案, Is any way to get llvm deference pointer value's raw type(i.e. pointer type)

    虽然有一些缺失的部分:

    1. 记得包含 Instructions.h 以便 LoadInst 被识别如下:

      #include "llvm/IR/Instructions.h"

    2. 通过将指针传递给指令,可以针对加载指令(而不是函数调用)优化接受的答案:

      LoadInst* LI = dyn_cast(O0)

    O0 应该是指向相关加载指令的指针。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 2023-01-20
      • 2018-10-04
      相关资源
      最近更新 更多