0

我正在研究类似 JIT 的东西。我有以下代码:

Obj doSomething(Obj o, Selector sel){
    ...
}

我有一个指向这个函数的指针,我的问题是如何将指针包装成 aLLVM:Value以便我可以使用 将它插入到我的 IR 中,IRBuilder.CreateCall我需要做什么?

4

1 回答 1

0

(我将您的问题理解为:我有一个指向 LLVM 函数的 C++ 指针,我需要创建对它的调用,如果我弄错了,请在帖子或下面的评论中澄清)

llvm::Value当您执行类似的操作时,大多数 LLVM 类都派生自

llvm::Function *theFunction = llvm::Function::Create(...);

llvm::Function是的子类,llvm::Value您可以在CreateCall

Value *result = Builder.CreateCall(theFunction, ...); // This is the call instruction
于 2014-11-04T16:22:49.093 回答