如何获得Ascii格式的llvm指针类型?

时间:2018-06-07 10:47:02

标签: c++ llvm llvm-ir

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

P.S。我对llvm很新,所以如果我问一些非常基本的话,请原谅我。

1 个答案:

答案 0 :(得分:0)

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

但有几个遗漏:

  1. 请记住要将LoadH中的Instructions.h包括在内,如下所示:

    #include“llvm / IR / Instructions.h”

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

    LoadInst * LI = dyn_cast(O0)

  3. O0应该是指向加载指令的指针。

    希望它有所帮助。