RFR: 8340398: [JVMCI] Unintuitive behavior of UseJVMCICompiler option

Doug Simon dnsimon at openjdk.org
Sun Sep 22 11:49:35 UTC 2024


On Wed, 18 Sep 2024 16:53:40 GMT, Tomáš Zezula <duke at openjdk.org> wrote:

> Disabling the JVMCI compiler with `-XX:-UseJVMCICompiler` not only deactivates JVMCI-based CompileBroker compilations but also prevents the loading of the libjvmci compiler. While this works as expected for CompileBroker compilations, it poses issues for the Truffle compiler. When `-XX:-UseJVMCICompiler` is used, Truffle falls back to the jargraal compiler, if available. This behavior may be confusing for Truffle users.
> 
> Expected behavior:
> 
> With `-XX:+UseGraalJIT`, both CompileBroker compilations and Truffle compilations should utilize the libjvmci compiler, if available.
> With `-XX:+EnableJVMCI`, CompileBroker compilations should use the C2 compiler, while only Truffle compilations should leverage the libjvmci compiler, if available.

src/hotspot/share/jvmci/jvmci_globals.cpp line 82:

> 80:   CHECK_NOT_SET(LibJVMCICompilerThreadHidden, UseJVMCICompiler)
> 81: 
> 82:   if (EnableJVMCI) {

This needs to be `EnableJVMCI || UseJVMCICompiler` (since deriving `EnableJVMCI` from `UseJVMCICompiler` is only done [below](https://github.com/openjdk/jdk/blob/ab06a878f888827026424530781f0af414a8a611/src/hotspot/share/jvmci/jvmci_globals.cpp#L96)).

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/21069#discussion_r1770532660


More information about the hotspot-compiler-dev mailing list