[Mlir-commits] [mlir] 12cc8e7 - [mlir] Fix infinite loop in collapse
Guray Ozen
llvmlistbot at llvm.org
Mon Dec 5 03:57:26 PST 2022
Author: Guray Ozen
Date: 2022-12-05T12:57:20+01:00
New Revision: 12cc8e7310474c2b3231e4ebba8e555e31cd3eaf
URL: https://github.com/llvm/llvm-project/commit/12cc8e7310474c2b3231e4ebba8e555e31cd3eaf
DIFF: https://github.com/llvm/llvm-project/commit/12cc8e7310474c2b3231e4ebba8e555e31cd3eaf.diff
LOG: [mlir] Fix infinite loop in collapse
Incrementing `counter` variable is inside the if statement. If the code does not enter there, the while loop will iterate infinitely. This revision moves the codes outside of if statement.
Reviewed By: mravishankar
Differential Revision: https://reviews.llvm.org/D139005
Added:
Modified:
mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp b/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
index d7df08f0de5c..d4c08875ccef 100644
--- a/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
+++ b/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
@@ -1318,17 +1318,17 @@ getOperandReassociation(AffineMap indexingMap,
while (counter < indexingMap.getNumResults()) {
unsigned dim =
indexingMap.getResult(counter).cast<AffineDimExpr>().getPosition();
+ // This is the start of a collapsed dimensions of the iteration that
+ // is gauranteed to be preserved in the indexing map. The number of folded
+ // dims is obtained from the collapsed op to original op mapping.
+ unsigned numFoldedDims =
+ collapsedOpToOrigOpMapping[origOpToCollapsedOpMapping[dim].first]
+ .size();
if (origOpToCollapsedOpMapping[dim].second == 0) {
- // This is the start of a collapsed dimensions of the iteration that
- // is gauranteed to be preserved in the indexing map. The number of folded
- // dims is obtained from the collapsed op to original op mapping.
- unsigned numFoldedDims =
- collapsedOpToOrigOpMapping[origOpToCollapsedOpMapping[dim].first]
- .size();
auto range = llvm::seq<unsigned>(counter, counter + numFoldedDims);
operandReassociation.emplace_back(range.begin(), range.end());
- counter += numFoldedDims;
}
+ counter += numFoldedDims;
}
return operandReassociation;
}
More information about the Mlir-commits
mailing list