> 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 incrementally with four additional commits since the last revision: - 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 ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1966/files - new: https://git.openjdk.org/valhalla/pull/1966/files/ae50201a..033b7a0a Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1966&range=01 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1966&range=00-01 Stats: 28 lines in 3 files changed: 11 ins; 2 del; 15 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
