c++ - llvm jit 编译成二进制

标签 c++ compiler-construction binary llvm jit

是否有可能以某种方式编写一个编译器来生成 LLVM IR 代码,用户将对其进行 JIT 编译,并在内存中编译后将其作为二进制文件写入磁盘?

这个场景背后的想法是我不想编译 LLVM IR 代码并让用户立即执行它(由于 JIT 编译导致性能较低)。但是我希望当用户第二次执行这个程序时它已经编译好了?

最佳答案

那么问题是如何在生成原生二进制文件时重用 JIT 生成的代码?我怀疑是否有 API 可以执行此操作,但记住 MC JIT 的工作原理,它可能相对容易实现。

但从我的观点来看,最好在第二次运行时将 LLVM IR 编译成 native 代码。

关于c++ - llvm jit 编译成二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11820278/

相关文章:

C编译器断言——如何实现?

php - 使用 PHP 将字符串转换为二进制然后再返回

php - MySQL:如何使用十六进制将文件存储到中等 blob 字段二进制文件中

c++ - 整数参数特殊值的模板特化

c++ - 客户端验证算法?

c++ - Direct2D:将文本转换为路径

c# - 为什么默认情况下只有文字字符串保存在实习生池中?

compiler-construction - 在按名称调用和按值调用下会打印什么?

java - 如何将 int 数从十进制转换为二进制?

c++:如何将指向配对的映射迭代器转换为 "regular"对指针