> 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: - Exception check should really be an assert - Move inlineable check to static helper ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1966/files - new: https://git.openjdk.org/valhalla/pull/1966/files/1c101059..e28ad2ad Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1966&range=03 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1966&range=02-03 Stats: 43 lines in 2 files changed: 25 ins; 15 del; 3 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
