[lworld] RFR: 8376221: [lworld] Do not store array of InlineLayoutInfo for all InstanceKlasses [v5]

Joel Sikström jsikstro at openjdk.org
Wed Jan 28 18:55:29 UTC 2026


> Hello,
> 
> Please refer to the JBS issue for a more detailed description of the background of this change. In summary, I suggest we only keep the array of InlineLayoutInfo for InstanceKlasses which need it, which are Klasses that have fields that have been inlined.
> 
> To make the transition to this easier, I suggest we change the following properties in FieldLayoutBuilder: 
> 
> _has_inline_type_fields
> _has_flattening_information
> 
> to
> 
> _has_inlineable_fields
> _has_inlined_fields
> 
> The `_has_inlineable_fields` property is only used for printing and `_has_inlined_fields` is the property we expose out to the ClassFileParser, telling us that this class has inlined fields, so the array of InlineLayoutInfo must be "preserved" and is possible to read from. Hence, the array is now only safe to access if `InstanceKlass::has_inlined_fields` is true, or simply if the actual field being accessed is flat (`fieldDescriptor::is_flat`).
> 
> I only found one place (in ciReplay.cpp) where we access the array of InlineLayoutInfo even though we might not have any inlined fields and only fields that are inlineable. I've changed this to use the normal "reference" path for fields that aren't flat.
> 
> Testing:
> * Oracle's tier1-5, hotspot_valhalla and jdk_valhalla

Joel Sikström has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 11 additional commits since the last revision:

 - Merge branch 'lworld' into JDK-8376221_inlinelayoutinfo_array_optimization
 - LayoutKind assertion for flat fields
 - Remove mention of 'warning' in comment
 - Exception check should really be an assert
 - Move inlineable check to static helper
 - Comment for second CLEAR_PENDING_EXCEPTION
 - Clear exception before setting inline klass
 - Split assert in field sorting methods
 - IOOB assert message
 - InstanceKlass instead of Klass for set_inline_layout_info_klass
 - ... and 1 more: https://git.openjdk.org/valhalla/compare/d6fdb2aa...b934da63

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

Changes:
  - all: https://git.openjdk.org/valhalla/pull/1966/files
  - new: https://git.openjdk.org/valhalla/pull/1966/files/e28ad2ad..b934da63

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1966&range=04
 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1966&range=03-04

  Stats: 1966 lines in 125 files changed: 1215 ins; 317 del; 434 mod
  Patch: https://git.openjdk.org/valhalla/pull/1966.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1966/head:pull/1966

PR: https://git.openjdk.org/valhalla/pull/1966


More information about the valhalla-dev mailing list