diff options
author | Slava Zakharin <szakharin@nvidia.com> | 2025-04-30 13:53:26 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-30 13:53:26 -0700 |
commit | 7dad8b91bc94741034052a4eb06ef45e7cb47c06 (patch) | |
tree | 6e47d5c15e2f0cd726ef278ab9d561a03699cbcf /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | 92b03e4f04405bfe55d707ed17a8b6ca89513018 (diff) | |
download | llvm-7dad8b91bc94741034052a4eb06ef45e7cb47c06.zip llvm-7dad8b91bc94741034052a4eb06ef45e7cb47c06.tar.gz llvm-7dad8b91bc94741034052a4eb06ef45e7cb47c06.tar.bz2 |
[flang] Fetch the initial reduction value from the input array. (#136790)
Instead of using loop-carried IsFirst predicate, we can fetch
the initial reduction values for MIN/MAX LOC/VAL reductions
from the array itself. This results in a little bit cleaner
loop nests, especially, generated for total reductions.
Otherwise, LLVM is able to peel the first iteration of the innermost
loop, but the surroudings of the peeled code are executed
multiple times withing the outer loop(s).
This patch does the manual peeling, which only works for
non-masked reductions where the input array is not empty.
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions