【发布时间】:2014-06-25 09:42:33
【问题描述】:
我想使用Function::Create 方法来创建一个输入参数类型为llvm::Instruction* 的函数,但是我在class Type 中没有找到任何直接方法可以做到这一点。谁能给我一些提示?
另外,对于Instruction *pi 的具体比较,我尝试了pi->getType()->print(errs()),它返回了i1 作为类型。但是当我在另一个cpp文件中写了一个函数int externalCall(Instruction *p)并编译成IR。这个 IR 说类型是class.llvm::Instruction。为什么这两个不同,我如何从 API 中获取后一个?
【问题讨论】:
-
您能否提供一个示例,说明您希望 IR 最终的样子,以及您希望对该函数的调用在 IR 中的样子?
-
类似
call void @foo('class.llvm::Instruction' p) -
就 LLVM 位码而言,
llvm::Instruction没有什么特别之处,它只是一个 C++ 类型。所以这个问题可能与任何其他类型一样好。特别是,您绝对不会发现这种类型的任何特殊处理。所以我建议寻找在 LLVM 中创建类型的通用方法。
标签: llvm llvm-ir llvm-c++-api