Integrated: 8356447: Change default for EagerJVMCI to true
Doug Simon
dnsimon at openjdk.org
Tue May 13 16:02:00 UTC 2025
On Thu, 8 May 2025 14:44:55 GMT, Doug Simon <dnsimon at openjdk.org> wrote:
> By default, JVMCI and Graal initialization only occurs on the first top-tier (i.e. tier 4) JIT compilation request. This made sense prior to libgraal where the initialization was interpreted and so noticeably contributed to VM startup. However, with libgraal, the initialization is sufficiently fast to not impact startup.
>
> The motivation for JVMCI and Graal eager initialization by default is to make Graal command line option processing happen in the same VM phase as handling of all other VM command line flags. That is, errors in Graal options should:
> 1. Happen deterministically, not just for apps that run long enough to trigger a top tier JIT compilation. For example: `java -XX:+UnlockExperimentalVMOptions -XX:+UseGraalJIT --version`. In a JDK build that does not include Graal, this may succeed (and print out the version info) or result in a VM error ("Cannot use JVMCI compiler: No JVMCI compiler found").
> 2. Stop the VM before any application code can be executed. This is just good hygiene.
>
> This PR makes JVMCI initialization eager by default if `UseJVMCICompiler` is true.
> This is done for both libgraal and jargraal so that the behavior is uniform. Since jargraal is now a development configuration, VM startup costs are not critical.
This pull request has now been integrated.
Changeset: 08b2df80
Author: Doug Simon <dnsimon at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/08b2df80c68e182fbf6b1fc94e991c02b23040ec
Stats: 32 lines in 6 files changed: 29 ins; 0 del; 3 mod
8356447: Change default for EagerJVMCI to true
Reviewed-by: yzheng, kvn, never
-------------
PR: https://git.openjdk.org/jdk/pull/25121
More information about the graal-dev
mailing list