RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]
Thomas Schatzl
tschatzl at openjdk.org
Tue Oct 15 11:28:31 UTC 2024
On Mon, 9 Sep 2024 11:53:13 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
>> Roman Kennke has updated the pull request incrementally with two additional commits since the last revision:
>>
>> - Try to avoid lea in loadNklass (aarch64)
>> - Fix release build error
>
> src/hotspot/share/oops/klass.hpp line 169:
>
>> 167: // contention that may happen when a nearby object is modified.
>> 168: AccessFlags _access_flags; // Access flags. The class/interface distinction is stored here.
>> 169: // Some flags created by the JVM, not in the class file itself,
>
> Suggestion:
>
> markWord _prototype_header; // Used to initialize objects' header with compact headers.
>
>
> Maybe some comment why this is an instance member.
>@tschatzl I just found your comment here, and I'm not sure what you mean, tbh. The prototype_header is a member of Klass because with compact headers, it encodes that Klass in the prototype header. Note that there is planned follow-up work to remove that field and encode the Klass* on the allocation path. https://bugs.openjdk.org/browse/JDK-8341703
You explained what I had wanted to see here - why do we need a per-klass prototype header, because the markWord contains it ;)
Given that it is going away, I retract this comment and the request can be resolved.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1800983876
More information about the build-dev
mailing list