RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v13]
Thomas Stuefe
stuefe at openjdk.org
Thu Sep 12 15:41:22 UTC 2024
On Thu, 12 Sep 2024 10:17:47 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:
>>
>> Revert accidental change of UCOH default
>
> src/hotspot/share/opto/lcm.cpp line 272:
>
>> 270: const TypePtr* tptr;
>> 271: if ((UseCompressedOops || UseCompressedClassPointers) &&
>> 272: (CompressedOops::shift() == 0 || CompressedKlassPointers::shift() == 0)) {
>
> Could you explain this change? It seems like it may affect C2's implicit null check analysis even for `-XX:-UseCompactObjectHeaders`. In particular, for the following configurations, the changed condition evaluates to true before the change and false after it, regardless of whether `UseCompactObjectHeaders` is enabled:
>
> (!UseCompressedOops, UseCompressedClassPointers, CompressedKlassPointers::shift() != 0)
> ( UseCompressedOops, !UseCompressedClassPointers, CompressedOops::shift() != 0)
Hi @robcasloz
The `CompressedKlassPointers` utility class is not usable anymore with `-UseCompressedClassPointers`. One change is that if `UseCompressedClassPointers` is off, `CompressedKlassPointers` stays uninitialized. And that makes more sense then to rely on the static initialization values of `CompressedOops::_shift`.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1757126946
More information about the build-dev
mailing list