LLVM:在分布式/并发系统中移动生成的代码



我使用LLVM C++API主要是作为脚本语言的代码生成器,该语言在运行时进行解析和评估(生成代码、编译和执行代码)。目前,我正在分布式/并发系统的上下文中研究未来的用例,并想知道这些用例是否以及如何实现。也许你可以分享你的想法:

  1. 有没有一种方法可以在分布式中的一个节点上生成LLVM代码系统,将其串行化为某种有线格式,并将其发送到另一个节点,在那里编译或重新编译它,然后执行它?我已经被卡住了查找序列化模块/函数的方法
  2. 是否有启用多线程代码的方法在同一LLVMContext内生成/编译,即线程共享LLVMContext,并在其中生成/执行代码上下文。到目前为止,我发现在这种情况下,是每个线程的LLVMContext。但是,我可以在不同上下文之间共享模块并且与1)相关,如何将生成的代码从一个模块移动到另一个模块

您肯定可以使用LLVM位代码格式将代码从一个节点转发到另一个节点。有关更多信息,请参阅include/lilvm/Bitcode/RederWriter.h及其周围的内容。您还可以检查LLVM工具的来源,以了解位代码是如何序列化和反序列化的。你可能会发现http://llvm.org/docs/BitCodeFormat.html有用的

最新更新