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 serviceability-dev
mailing list