RFR: 8251462: Remove legacy compilation policy [v3]

Vladimir Kozlov kvn at openjdk.java.net
Fri Jan 22 01:48:49 UTC 2021


On Thu, 7 Jan 2021 23:06:19 GMT, Igor Veresov <iveresov at openjdk.org> wrote:

>> This change removes the legacy compilation policy and an emulation mode to the tiered policy to simulate the old behavior with ```-XX:-TieredCompilation```. The change removed a bunch of interpreter code, devirtualizes the compilation policy API, adds a consistent way to query compiler configuration with the new ```CompilerConfig``` API.
>> 
>> I've tested this with hs-tier{1,2,3,4,5}. And also made sure it builds and works with C1/C2-Graal/AOT being enabled/disabled.
>> 
>> Since there are platform-specific changes I would greatly appreciate some help from the maintainers of the specific ports to verify the build and run basic smoke tests. I've already tested x64 and aarch64. Thanks!
>
> Igor Veresov has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix another s390 compilation failure

src/hotspot/share/aot/aotCodeHeap.cpp line 194:

> 192:   // AOT libs are loaded before heap initialized so shift values are not set.
> 193:   // It is okay since ObjectAlignmentInBytes flag which defines shifts value is set before AOT libs are loaded.
> 194:   // Set shifts value based on first AOT library config.

Why this code is removed?

src/hotspot/share/compiler/compileBroker.cpp line 972:

> 970: 
> 971:   // Initialize the compilation queue
> 972:   if (_c2_count > 0) {

Is ZERO treated as `is_interpreter_only()` ? How this change works with ZERO?

src/hotspot/share/runtime/vmStructs.cpp line 296:

> 294:   JVMTI_ONLY(nonstatic_field(MethodCounters,   _number_of_breakpoints,                        u2))                                   \
> 295:   nonstatic_field(MethodCounters,              _invocation_counter,                           InvocationCounter)                     \
> 296:   nonstatic_field(MethodCounters,              _backedge_counter,                             InvocationCounter)                     \

You need to fix SA agent:
https://github.com/openjdk/jdk/blob/master/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/MethodCounters.java#L52

src/hotspot/share/jvmci/vmStructs_jvmci.cpp line 229:

> 227:   JVMTI_ONLY(nonstatic_field(MethodCounters,   _number_of_breakpoints,                        u2))                                   \
> 228:   nonstatic_field(MethodCounters,              _invocation_counter,                           InvocationCounter)                     \
> 229:   nonstatic_field(MethodCounters,              _backedge_counter,                             InvocationCounter)                     \

I don't see Java JVMCI changes. Do you need them?

test/hotspot/jtreg/TEST.quick-groups line 1787:

> 1785:   vmTestbase/jit/t/t112/t112.java \
> 1786:   vmTestbase/jit/t/t113/t113.java \
> 1787:   vmTestbase/jit/verifier/VerifyInitLocal/VerifyInitLocal.java \

Why this test removed?

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

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


More information about the hotspot-compiler-dev mailing list