版本
- 适用于 JDK 23 的 GraalVM(最新)
- 适用于 JDK 24 的 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
优化。