C++ 我可以从c+;调用LLVM后端的输出吗+;以有效的方式?

C++ 我可以从c+;调用LLVM后端的输出吗+;以有效的方式?,c++,llvm,llvm-ir,intermediate-language,intermediate-code,C++,Llvm,Llvm Ir,Intermediate Language,Intermediate Code,假设我用一些编程语言写下了一些逻辑,LLVM前端可用。我想在一些C++应用程序中重用这个逻辑。我是否可以使用公共LLVM后端生成某种库,并从我的应用程序中调用它,而不会显著降低性能?有关于如何解决此用例的提示吗?您希望只生成一次库,然后在没有LLVM的情况下使用它(您可以通过LLVM将代码编译到库中,并将其链接到应用程序中)?或者您希望能够动态地修改和重新编译逻辑(那么您必须将LLVM JIT集成到您的应用程序中)?请给出一些关于这个逻辑和使用的语言生成器的细节。我有一些遗留代码库,其中有一些逻

假设我用一些编程语言写下了一些逻辑,LLVM前端可用。我想在一些C++应用程序中重用这个逻辑。我是否可以使用公共LLVM后端生成某种库,并从我的应用程序中调用它,而不会显著降低性能?有关于如何解决此用例的提示吗?

您希望只生成一次库,然后在没有LLVM的情况下使用它(您可以通过LLVM将代码编译到库中,并将其链接到应用程序中)?或者您希望能够动态地修改和重新编译逻辑(那么您必须将LLVM JIT集成到您的应用程序中)?请给出一些关于这个逻辑和使用的语言生成器的细节。我有一些遗留代码库,其中有一些逻辑部分需要在cpp应用程序中重用。从我到目前为止所学的知识来看,我可以将legacy转换为IR,然后使用:llc-march=cpp-o code.cpp code.ll,从那时起,我可以将其作为任何常规cpp使用,对吗?现在我知道它不会很漂亮,但只要Api是完整的,我就不需要查看内部。您的目标是一个平台还是多个平台?对于单目标平台(例如x86_64/linux),您可以使用llvm将遗留代码编译为二进制对象并与之链接。对于某些情况,应将*.ll编译为多个对象文件。