LLVM JIT 加速选择?

问题描述 投票:0回答:2

这有点主观,但我在加快 LLVM JIT 速度方面遇到了困难。即使打开了延迟编译,编译大量代码所花费的时间也是解释它们所需时间的 50 倍。

所以我想知道如何加快抖动速度,我可以使用什么样的设置?

还有其他推荐吗?

jit llvm
2个回答
10
投票

我很遗憾地说,LLVM 作为 JIT 编译器并不是很快,作为 AOT/静态编译器更好。

我在我的 llvm-lua 项目中遇到了同样的速度问题。我所做的是禁用大型 Lua 函数的 JIT 编译。 llvm-lua 没有打开延迟编译支持,因为 LLVM 需要太多的 C 堆栈空间才能从 Lua 协程运行。

此外,如果您在程序的 main() 函数中使用它:

llvm::cl::ParseCommandLineOptions(argc, argv, 0, true);

它将公开 LLVM 的大量命令行选项,例如“-time-passes”,这将启用 LLVM 传递的计时,以查看 JIT 编译的哪些部分花费了最多时间。


0
投票

这个答案可以帮助那些使用 llvm orc 的人。 减少编译时间的一种方法是降低代码生成优化级别。缺点是禁用优化会增加运行时间。如果 IR 很大但代码只运行几次,您可能需要考虑使用不太激进的优化级别来编译它。

你可以看看

setCodeGenOptLevel()
中的
JITTargetMachineBuilder
方法。

© www.soinside.com 2019 - 2024. All rights reserved.