RFR: 8257020: [JVMCI] enable a JVMCICompiler to specify which GCs it supports [v5]

Vladimir Kozlov kvn at openjdk.java.net
Wed Dec 2 17:28:00 UTC 2020


On Wed, 2 Dec 2020 13:32:29 GMT, Doug Simon <dnsimon at openjdk.org> wrote:

>> A number of jtreg tests require a specific GC. These tests should be ignored when EnableJVMCI is true and the JVMCI compiler does not support the required GC.
>> 
>> This PR adds `JVMCICompiler.isGCSupported` and makes use of it in `WhiteBox.isGCSupported`.
>> 
>> Prior to this PR, a test requiring a GC not yet supported by a JVMCI compiler fail as follows:
>> Error occurred during initialization of VM
>> JVMCI Compiler does not support selected GC: epsilon gc
>
> Doug Simon has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains seven commits:
> 
>  - Keep EnableJVMCI off for GCs that don't fully support JVMCI
>  - implemented isGCSupported in Graal compiler
>  - removed JVMCI logic from GCConfig and introduced WhiteBox.isGCSupportedByJVMCI instead
>  - removed broken check_jvmci_supported_gc logic
>  - removed redundant signature
>  - move logic to GCConfig
>  - enable a JVMCICompiler to specify which GCs it supports

Latest changes looks like reversal of original. Will GraalVM have additional checks to allow ask Graal before disabling JVMCI?

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

> 205:     // Check if selected GC is supported by JVMCI and Java compiler
> 206:     if (!(UseSerialGC || UseParallelGC || UseG1GC)) {
> 207:       log_warning(gc)("Selected GC does not support JVMCI: %s", GCConfig::hs_err_name());

I would add new UL tag `jvmci` if we don't have it yet and use it here. Also message should say `EnableJVMCI is turned off because ...'

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

PR: https://git.openjdk.java.net/jdk/pull/1423


More information about the hotspot-dev mailing list