我想知道如何避免每次进行LLVM JIT编译并使用缓存副本。我看到LLVM支持
ObjectCache
用于从模块生成代码,但是要从文件或代码字符串获取模块,则需要对其进行编译并经过不同的优化处理过程。最佳方法是什么?
- 将最终的图像对象缓存到某个文件中,并首先查找该文件,尝试解析并尝试使用该图像创建
ExecutionEngine
,以便执行(获取函数指针并调用它) - 保存代码编译和优化的中间输出,即将模块写入某个文件(例如,使用dump),并尝试读取它(解析IR)。然后使用
ObjectCache
支持从此模块生成代码。