RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v26]

Roman Kennke rkennke at openjdk.org
Thu Sep 26 11:41:53 UTC 2024


On Thu, 26 Sep 2024 08:55:44 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:

>> Roman Kennke has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Allow LM_MONITOR on 32-bit platforms
>
> src/hotspot/cpu/x86/stubGenerator_x86_64.cpp line 4008:
> 
>> 4006: #ifdef COMPILER2
>> 4007:   if ((UseAVX == 2) && EnableX86ECoreOpts && !UseCompactObjectHeaders) {
>> 4008:     generate_string_indexof(StubRoutines::_string_indexof_array);
> 
> This stub routine should be re-enabled if `UseCompactObjectHeaders` is to become non-experimental and enabled by default in the future. Is there a RFE for this task?

This comes from an assert in `LibraryCallKit::inline_string_indexOfI` and I believe we can perhaps remove that assert and the !UCOH clause. I checked a couple of tests that tripped that assert, and they seem to work fine, and I also checked the code in `LibraryCallKit::inline_string_indexOfI` and `generate_string_indexof_stubs()` and could not find anything obvious that requires the base offset to be >=16. I am not sure why that assert is there. I am now running tier1-4 with that change: https://github.com/rkennke/jdk/commit/7001783e8c11718226506f42b7c1f1fda1af3ad0

If you know (or find) any reason why we need that assert, please let me know. Otherwise I'd remove it, if you don't have objections.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1776888460


More information about the build-dev mailing list