RFR: 8345485: C2 MergeLoads: merge adjacent array/native memory loads into larger load [v4]

kuaiwei duke at openjdk.org
Tue Mar 18 09:21:08 UTC 2025


On Tue, 18 Mar 2025 09:00:42 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> kuaiwei has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Revert extract value and add more tests
>
> src/hotspot/share/opto/memnode.cpp line 2522:
> 
>> 2520:       MergePrimitiveLoads merge(phase, this);
>> 2521:       Node* merged = merge.run();
>> 2522:       if (merged != nullptr) { return merged; }
> 
> I'm a little confused here... So imagine we have a `LoadB` here. How can we now return a `LoadI` instead, and replace all uses of the `LoadB` with the `LoadI`? Should we not be replacing the `OrI` instead?

I'm not clear about it. I think we need replace OrI node here, but return the origin LoadB?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24023#discussion_r2000560894


More information about the hotspot-compiler-dev mailing list