On Fri, 30 Jan 2026 15:29:17 GMT, Joel Sikström <[email protected]> wrote:

> Hello,
> 
> Right now it's not clear that the dummy field that is injected into empty 
> inline klasses can be/is reused for the null-marker when looking at the 
> printed layout from -XX:+PrintInlineLayout. I suggest we enhance this print 
> to indicate if the dummy field has been reused for the null-marker.
> 
> I've tested that the added comment in the print is there when nullability is 
> turned on (default), and not there when turned off 
> (`-XX:-UseNullableValueFlattening -XX:-UseNullableNonAtomicValueFlattening`).
> 
> 
> Before:
> Instance fields:
>  @0 RESERVED 12/-
>  @12 REGULAR 1/1 ".empty" B
> 
> After:
> Instance fields:
>  @0 RESERVED 12/-
>  @12 REGULAR 1/1 ".empty" B (reused as null-marker)
> 
> 
> Testing:
> * GHA
> * Oracle's tier1

src/hotspot/share/classfile/fieldLayoutBuilder.cpp line 1587:

> 1585:     _layout->print(&st, false, _super_klass, _inline_layout_info_array, 
> dummy_field_is_reused_as_null_marker);
> 1586:     st.print_cr("Static fields:");
> 1587:     _static_layout->print(&st, true, nullptr, 
> _inline_layout_info_array, dummy_field_is_reused_as_null_marker);

Does the static layout ever have a dummy field? I would have anticipated this 
to be simply `false`.

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

PR Review Comment: 
https://git.openjdk.org/valhalla/pull/2001#discussion_r2748145018

Reply via email to