【问题标题】:C++ how to call IR functionC++如何调用IR函数
【发布时间】:2013-01-25 08:55:00
【问题描述】:

我有一个C++文件,里面有一些函数,比如:int myMax(int a,int b),编译成一个llvm IR。现在想在另一个C++文件中操作IR,不知道如何调用我的C++文件中的函数(如:myMax)。

【问题讨论】:

    标签: function llvm call llvm-ir


    【解决方案1】:

    您可以将 IR 编译为适合您平台的目标文件(使用 llc)。该目标文件与由 C++ 编译器生成的任何其他目标文件类似。所以你可以从你的 C++ 代码中调用它。

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多