On Wed, 16 Sep 2026 11:35:14 GMT, Johan Sjölen <[email protected]> wrote:

>> The fields declaring layout support for value classes are duplicated across 
>> the FieldLayoutBuilder, InlineKlass, and ClassFileParser. I suggest that we 
>> move all of these into a new class, called AvailableLayouts.
>> 
>> This rids us of many duplicated lines of code, and makes keeping the names 
>> consistent easier (today, they are not consistent).
>> 
>> For the design of `AvailableLayouts`, I decided on putting the size fields 
>> into an array which is indexed by casting `LayoutKind` into an `int`. This 
>> saves us code bloat, both in the repo, and also in our binaries. When I've 
>> looked at the generated code for the inlined callsites of 
>> `InlineKlass::layout_size_in_bytes`, the switch is compiled down into table 
>> dispatch. Now, we can just have it be a load from an object offset. This 
>> ought to be faster as well, as no prediction needs to take place.
>> 
>> There's a lot of added `const` stuff in this PR as well, as issues with 
>> const-correctness came up during the refactoring.
>> 
>> ---------
>> - [X] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Johan Sjölen has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Service agent fixes

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

> 225:   nonstatic_field(InstanceKlass,               _adr_value_klass_members, 
>                      address)                               \
> 226:   nonstatic_field(ValueKlass::Members,         
> _available_layouts._payload_offset,            int)                           
>         \
> 227:   nonstatic_field(ValueKlass::Members,         
> _available_layouts._null_marker_offset,        int)                           
>         \

SA should follow HotSpot structure as possible.
It is better to add mirror class of `LayoutDescriptions` into SA, and it should 
be used. I think you can refer `ValueKlass::Members` to know how SA accesses 
internal fields.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/32276#discussion_r4033617375

Reply via email to