【发布时间】:2012-08-05 21:38:22
【问题描述】:
是否有可能以某种方式编写生成 LLVM IR 代码的编译器,用户将对其进行 JIT 编译,并在内存中编译后将其作为二进制文件写入磁盘?
这个场景背后的想法是我不想编译 LLVM IR 代码并让用户立即执行它(由于 JIT 编译而导致性能较低)。但是我希望当用户第二次执行这个程序时它已经被编译了?
【问题讨论】:
标签: c++ compiler-construction binary llvm jit
是否有可能以某种方式编写生成 LLVM IR 代码的编译器,用户将对其进行 JIT 编译,并在内存中编译后将其作为二进制文件写入磁盘?
这个场景背后的想法是我不想编译 LLVM IR 代码并让用户立即执行它(由于 JIT 编译而导致性能较低)。但是我希望当用户第二次执行这个程序时它已经被编译了?
【问题讨论】:
标签: c++ compiler-construction binary llvm jit
那么问题是如何在生成原生二进制文件时重用 JIT 生成的代码?我怀疑是否有 API 可以做到这一点,但记住 MC JIT 的工作原理,它可能相对容易实现。
但从我的 POV 来看,最好在第二次运行时将 LLVM IR 编译为本机代码。
【讨论】: