[llvm] 949103b - [SLP][NFC] Use range-based `for` in `matchAssociativeReduction` (#149029)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 16 05:08:44 PDT 2025
Author: Piotr Fusik
Date: 2025-07-16T14:08:41+02:00
New Revision: 949103b45c2f7f1fc28106b5db435660e466b804
URL: https://github.com/llvm/llvm-project/commit/949103b45c2f7f1fc28106b5db435660e466b804
DIFF: https://github.com/llvm/llvm-project/commit/949103b45c2f7f1fc28106b5db435660e466b804.diff
LOG: [SLP][NFC] Use range-based `for` in `matchAssociativeReduction` (#149029)
Added:
Modified:
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 87de28044b2ae..5ec7b49e37079 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -22140,7 +22140,7 @@ class HorizontalReduction {
// Try to regroup reduced values so that it gets more profitable to try to
// reduce them. Values are grouped by their value ids, instructions - by
// instruction op id and/or alternate op id, plus do extra analysis for
- // loads (grouping them by the distabce between pointers) and cmp
+ // loads (grouping them by the distance between pointers) and cmp
// instructions (grouping them by the predicate).
SmallMapVector<
size_t, SmallMapVector<size_t, SmallMapVector<Value *, unsigned, 2>, 2>,
@@ -22207,10 +22207,9 @@ class HorizontalReduction {
for (auto &PossibleReducedVals : PossibleReducedValsVect) {
auto PossibleRedVals = PossibleReducedVals.second.takeVector();
SmallVector<SmallVector<Value *>> PossibleRedValsVect;
- for (auto It = PossibleRedVals.begin(), E = PossibleRedVals.end();
- It != E; ++It) {
+ for (auto &Slice : PossibleRedVals) {
PossibleRedValsVect.emplace_back();
- auto RedValsVect = It->second.takeVector();
+ auto RedValsVect = Slice.second.takeVector();
stable_sort(RedValsVect, llvm::less_second());
for (const std::pair<Value *, unsigned> &Data : RedValsVect)
PossibleRedValsVect.back().append(Data.second, Data.first);
@@ -22370,8 +22369,8 @@ class HorizontalReduction {
SmallVector<Value *> Candidates;
Candidates.reserve(2 * OrigReducedVals.size());
DenseMap<Value *, Value *> TrackedToOrig(2 * OrigReducedVals.size());
- for (unsigned Cnt = 0, Sz = OrigReducedVals.size(); Cnt < Sz; ++Cnt) {
- Value *RdxVal = TrackedVals.at(OrigReducedVals[Cnt]);
+ for (Value *ReducedVal : OrigReducedVals) {
+ Value *RdxVal = TrackedVals.at(ReducedVal);
// Check if the reduction value was not overriden by the extractelement
// instruction because of the vectorization and exclude it, if it is not
// compatible with other values.
@@ -22382,7 +22381,7 @@ class HorizontalReduction {
(S && !Inst))
continue;
Candidates.push_back(RdxVal);
- TrackedToOrig.try_emplace(RdxVal, OrigReducedVals[Cnt]);
+ TrackedToOrig.try_emplace(RdxVal, ReducedVal);
}
bool ShuffledExtracts = false;
// Try to handle shuffled extractelements.
More information about the llvm-commits
mailing list