RFR: 8347405: MergeStores with reverse bytes order value [v2]
kuaiwei
duke at openjdk.org
Fri Jan 10 13:26:45 UTC 2025
On Fri, 10 Jan 2025 11:08:53 GMT, Emanuel Peter <epeter at openjdk.org> wrote:
>> kuaiwei has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Fix as review comments
>
> src/hotspot/share/opto/memnode.cpp line 2794:
>
>> 2792: StoreNode* const _store;
>> 2793: enum DataOrder { Unknown, Forward, Reverse};
>> 2794: DataOrder _value_order;
>
> Suggestion:
>
> // State machine with initial state Unknown
> // Allowed transitions:
> // Unknown -> Forward
> // Unknown -> Backward
> // Forward -> Forward
> // Backward -> Backward
> enum DataOrder { Unknown, Forward, Reverse };
> DataOrder _value_order;
>
>
> Also: call it either consistently data-order or value-order ;)
Thanks for comment. I rename the enum to ValueOrder, and rename Reverse to Backward.
> src/hotspot/share/opto/memnode.cpp line 2993:
>
>> 2991: }
>> 2992:
>> 2993: // initialize value_order once
>
> Suggestion:
>
> // Initial state "Unknown": check for transition to Forward or Reverse.
Fixed
> src/hotspot/share/opto/memnode.cpp line 2996:
>
>> 2994: if (_value_order == DataOrder::Unknown) {
>> 2995: if (shift_n1 < shift_n2) {
>> 2996: _value_order = DataOrder::Forward;
>
> Suggestion:
>
> _value_order = DataOrder::Forward; // First pair has Forward order.
Fixed
> src/hotspot/share/opto/memnode.cpp line 3010:
>
>> 3008: if ((_value_order == DataOrder::Forward && shift_n1 > shift_n2) ||
>> 3009: (_value_order == DataOrder::Reverse && shift_n1 < shift_n2)) {
>> 3010: // wrong order
>
> Suggestion:
>
> // Wrong order: mixed Forward and Reverse not allowed.
Fixed
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23030#discussion_r1910374211
PR Review Comment: https://git.openjdk.org/jdk/pull/23030#discussion_r1910374912
PR Review Comment: https://git.openjdk.org/jdk/pull/23030#discussion_r1910375233
PR Review Comment: https://git.openjdk.org/jdk/pull/23030#discussion_r1910374680
More information about the hotspot-compiler-dev
mailing list