> 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 two additional commits since the last revision: - Move InlineKlass::cast() to callers - Add abstract check to field_is_inlineable ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1966/files - new: https://git.openjdk.org/valhalla/pull/1966/files/b934da63..cb80bac9 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1966&range=05 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1966&range=04-05 Stats: 11 lines in 3 files changed: 2 ins; 1 del; 8 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
