[lworld] RFR: 8349162: [lworld] VM Flags controlling flattening need an update [v3]
Frederic Parain
fparain at openjdk.org
Tue Feb 4 19:06:24 UTC 2025
On Mon, 3 Feb 2025 17:09:42 GMT, Frederic Parain <fparain at openjdk.org> wrote:
>> This patch is mostly about VM flags update and internal renaming.
>>
>> Renaming a few symbols to make them consistent with previous code cleanup:
>> - data_for_oop() -> payload_address()
>> - first_field_offset() -> payload_offset()
>> - LayoutKind::PAYLOAD -> LayoutKind::BUFFERED (it is only used to describe layout in buffered values, and it makes it an adjective like the other LayoutKind values)
>>
>> VM flags controlling flattening:
>> - size based VM flags are removed: FlatArrayElementMaxSize, InlineFieldMaxFlatSize. For now, FlatArrayElementMaxOops is still present because some compiler tests rely on it, but it will be removed eventually
>> - InlineArrayAtomicAccess has been removed, use AlwaysAtomicAccesses instead
>> - new VM flags to control the generation of the new layouts: NonAtomicValueFlattening, AtomicValueFlattening, NullableValueFlattening. Note that that those flags control the generation of the layouts, not the way they are used (see flags below)
>> - new VM flags to control use of flat layouts: UseFlatField, UseFlatArray
>>
>> Example:
>> To enable flattening of nullable fields, the flag combination is -XX:+NullableValueFlattening -XX:+UseFlatField
>>
>> The new VM flags controlling flattening are flags for testing or troubleshooting (they should probably be turned into DIAGNOSTIC flags before preview). They are not designed for performance tuning.
>>
>> Feel free to propose new names for those flags if you think they are not explicit enough.
>>
>> Thank you,
>>
>> Fred
>
> Frederic Parain has updated the pull request incrementally with one additional commit since the last revision:
>
> Fix identation
After a discussion with Tobias, we agreed on a more consistent scheme for flags names:
- UseFlatArray -> UseArrayFlattening
- UseFlatField -> UseFieldFlattening
- NonAtomicValueFlattening -> UseNonAtomicValueFlattening
- AtomicValueFlattening -> UseAtomicValueFlattening
- NullableValueFlattening -> UseNullableValueFlattening
-------------
PR Comment: https://git.openjdk.org/valhalla/pull/1345#issuecomment-2634822741
More information about the valhalla-dev
mailing list