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

kuaiwei duke at openjdk.org
Tue May 13 09:28:59 UTC 2025


On Thu, 17 Apr 2025 10:07:08 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> kuaiwei has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 14 commits:
>> 
>>  - Merge remote-tracking branch 'origin/master' into dev/merge_loads
>>  - Remove unused code
>>  - Move code to addnode.cpp and add more tests
>>  - Merge remote-tracking branch 'origin/master' into dev/merge_loads
>>  - Fix test
>>  - Add more tests
>>  - Enable StressIGVN and riscv platform
>>  - Change tests as review comments
>>  - Fix test failure and change for review comments
>>  - Revert extract value and add more tests
>>  - ... and 4 more: https://git.openjdk.org/jdk/compare/660b17a6...f6518b26
>
> src/hotspot/share/opto/addnode.cpp line 946:
> 
>> 944:  *            | ((UNSAFE.getByte(array, address + 3) & 0xff) << 24);
>> 945:  */
>> 946: bool MergePrimitiveLoads::is_merged_load_candidate() const {
> 
> What is your definition of candidate here? It seems to have something to do about not having a `LShift`, why? Maybe you can give a good definition here or somewhere else?

Comments is updated. Only the last one for combine operator chain is the candidate.

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

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


More information about the hotspot-compiler-dev mailing list