我正在研究JIT之类的东西。我有以下代码:
Obj doSomething(Obj o, Selector sel){
...
}
我有一个指向这个函数的指针,我的问题是如何将指针包装到LLVM:Value
中,以便我可以使用IRBuilder.CreateCall
将其插入到我的IR中,我需要什么去做?
答案 0 :(得分:0)
(我理解你的问题:我有一个指向LLVM函数的C ++指针,我需要创建一个调用它,如果我弄错了请在帖子或下面的评论中澄清)< / em>的
当您执行类似
的操作时,大多数LLVM类派生自llvm::Value
llvm::Function *theFunction = llvm::Function::Create(...);
llvm::Function是llvm::Value
的子类,您可以在CreateCall
Value *result = Builder.CreateCall(theFunction, ...); // This is the call instruction