版本
- 适用于 JDK 24 的 GraalVM(最新)
- 适用于 JDK 25 的 GraalVM(早期访问)
- 适用于 JDK 21 的 GraalVM
- 适用于 JDK 17 的 GraalVM
- 存档
- 开发构建
LLVM 兼容性
GraalVM 支持 LLVM 位码版本 4.0 到 12.0.1。建议使用 GraalVM 随附的 LLVM 工具链。
优化标志 #
与 LLVM 语言的静态编译模型不同,在 GraalVM 中,机器代码不是直接从 LLVM 位码生成的。Graal 编译器会额外执行一个动态编译步骤。
首先,LLVM 前端(例如 `clang`)在位码级别执行优化,然后 Graal 编译器在动态编译期间在此基础上进行自己的优化。某些优化在位码上提前执行效果更好,而另一些优化则最好留给 Graal 编译器的动态编译,因为那时可以获取分析信息。
GraalVM 随附的 LLVM 工具链默认会自动选择推荐的标志。
通常,所有优化级别都应该有效,但为了获得更好的结果,建议使用 `-O1` 优化级别编译位码。
为了实现跨语言互操作性,需要进行 `-mem2reg` 优化。有两种方法可以实现:要么至少使用 `-O1` 编译,要么使用 `opt` 工具手动应用 `-mem2reg` 优化。