C ++如何调用IR函数

时间:2013-01-25 08:55:01

标签: function llvm call llvm-ir

我有一个C ++文件,其中有很多函数,例如:int myMax(int a,int b),并将其编译为llvm IR。现在我想在另一个C ++文件中操作IR,我不知道如何在我的C ++文件中调用该函数(例如:myMax)。

1 个答案:

答案 0 :(得分:0)

您可以将IR编译为您平台的目标文件(使用llc)。此目标文件类似于C ++编译器生成的任何其他目标文件。所以你可以用你的C ++代码来调用它。

更具体地说。您将带有int myMax(int a, int b)的文件编译到某个目标文件中,例如mymax.o。您的“用户”C ++代码需要:

  1. 通过包含适当的标题或仅声明函数原型来查看myMax的声明。
  2. 链接到mymax.o以在最终的可执行文件中实现。

  3. 或者,您可以使用LLVM的现有JIT功能在C ++代码中JIT IR模块,然后使用getPointerToFunction来访问它。