[lworld] RFR: 8349162: [lworld] VM Flags controlling flattening need an update [v4]

Tobias Hartmann thartmann at openjdk.org
Wed Feb 5 06:50:29 UTC 2025


On Tue, 4 Feb 2025 19:04:04 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 with a new target base due to a merge or a rebase. The pull request now contains six commits:
> 
>  - Change flags names for more consistency
>  - Merge remote-tracking branch 'upstream/lworld' into renaming
>  - Fix identation
>  - Fix typo
>  - Merge remote-tracking branch 'upstream/lworld' into renaming
>  - Renaming and VM flags cleanup

src/hotspot/share/runtime/globals.hpp line 814:

> 812:           "Allow the VM to flatten value fields")                           \
> 813:                                                                             \
> 814:   product(bool, UseNonUseAtomicValueFlattening, true,                       \

There's something off here :)

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

PR Review Comment: https://git.openjdk.org/valhalla/pull/1345#discussion_r1942327794


More information about the valhalla-dev mailing list