RFR: 8343689: AArch64: Optimize MulReduction implementation [v8]
Mikhail Ablakatov
mablakatov at openjdk.org
Fri Jul 11 05:50:53 UTC 2025
On Fri, 11 Jul 2025 01:53:48 GMT, Hao Sun <haosun at openjdk.org> wrote:
>> src/hotspot/share/opto/loopopts.cpp line 4715:
>>
>>> 4713: Node* last_accumulator = phi->in(2);
>>> 4714: Node* post_loop_reduction = ReductionNode::make(sopc, nullptr, init, last_accumulator, bt,
>>> 4715: /* requires_strict_order */ false);
>>
>> Why do you change this? Before it requires strict order, but now it is false.
>
> IIUC, it's a correction here.
>
> As noted by this function name `move_unordered_reduction_out_of_loop()` and the comment before this function, **unordered reduction** is expected to be generated. Hence, we should specify `/* requires_strict_order */ false`
Precisely that, @shqking , thank you. I found this while evaluating the effect the patch has on auto-vectorization.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23181#discussion_r2199671921
More information about the hotspot-compiler-dev
mailing list