我想使用Function::Create
方法创建一个输入参数类型为llvm::Instruction*
的函数,但我没有在class Type
中找到任何直接方法来执行此操作。谁能给我一些提示?
另外,对于具体的比较Instruction *pi
,我尝试了pi->getType()->print(errs())
,并将i1
作为类型返回给我。但是当我在另一个cpp文件中编写函数int externalCall(Instruction *p)
并编译成IR时。此IR表示类型为class.llvm::Instruction
。为什么这两个是不同的,我如何从API获得后者?
答案 0 :(得分:0)
只要你使用c风格的链接,指针类型就很不相关了:
Instruction *
没问题(只需在llvm方面使用BitcastInst
案例,如:
BitCastInst *bitcast = new BitCastInst(value, PointerType::get(IntegerType::get(context, 8), 0));
(...其中value
是您的Instruction *
对象)