【问题标题】:LLVM: moving generated code around in a distributed/concurrent systemLLVM:在分布式/并发系统中移动生成的代码
【发布时间】:2012-07-28 05:18:22
【问题描述】:

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

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

【问题讨论】:

    标签: concurrency code-generation llvm move


    【解决方案1】:

    您绝对可以使用 LLVM 位码格式将代码从一个节点转发到另一个节点。有关更多信息,请参阅 include/llvm/Bitcode/ReaderWriter.h 等。您还可以查看 LLVM 工具的来源,以了解位码是如何序列化和反序列化的。您可能会发现 http://llvm.org/docs/BitCodeFormat.html 很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-26
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      相关资源
      最近更新 更多