[Mlir-commits] [mlir] caf8942 - [mlir][transform] Guard parametric loop tiling pass from no option (#118254)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Dec 4 01:56:07 PST 2024
Author: Kai Sasaki
Date: 2024-12-04T18:56:02+09:00
New Revision: caf8942cd9e52fca35992ab34af0a1cec1866759
URL: https://github.com/llvm/llvm-project/commit/caf8942cd9e52fca35992ab34af0a1cec1866759
DIFF: https://github.com/llvm/llvm-project/commit/caf8942cd9e52fca35992ab34af0a1cec1866759.diff
LOG: [mlir][transform] Guard parametric loop tiling pass from no option (#118254)
`test-extract-fixed-outer-loops` pass always crash without any
`test-outer-loop-sizes` option. We need to keep the pass from crash by
checking the option existence.
Fix https://github.com/llvm/llvm-project/issues/61716,
https://github.com/llvm/llvm-project/issues/116360
---------
Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
Added:
mlir/test/Transforms/invalid-outer-loop-size.mlir
Modified:
mlir/test/lib/Dialect/SCF/TestLoopParametricTiling.cpp
Removed:
################################################################################
diff --git a/mlir/test/Transforms/invalid-outer-loop-size.mlir b/mlir/test/Transforms/invalid-outer-loop-size.mlir
new file mode 100644
index 00000000000000..7c1e92a4b7ba75
--- /dev/null
+++ b/mlir/test/Transforms/invalid-outer-loop-size.mlir
@@ -0,0 +1,6 @@
+// RUN: not mlir-opt -test-extract-fixed-outer-loops %s 2>&1 | FileCheck %s
+
+func.func @no_crash(%arg0: memref<?x?xf32>) {
+ // CHECK: error: missing `test-outer-loop-sizes` pass-option for outer loop sizes
+ return
+}
diff --git a/mlir/test/lib/Dialect/SCF/TestLoopParametricTiling.cpp b/mlir/test/lib/Dialect/SCF/TestLoopParametricTiling.cpp
index 1f33a04b0668a9..e7e2f70ba11973 100644
--- a/mlir/test/lib/Dialect/SCF/TestLoopParametricTiling.cpp
+++ b/mlir/test/lib/Dialect/SCF/TestLoopParametricTiling.cpp
@@ -40,6 +40,13 @@ class SimpleParametricLoopTilingPass
}
void runOnOperation() override {
+ if (sizes.empty()) {
+ emitError(
+ UnknownLoc::get(&getContext()),
+ "missing `test-outer-loop-sizes` pass-option for outer loop sizes");
+ signalPassFailure();
+ return;
+ }
getOperation()->walk([this](scf::ForOp op) {
// Ignore nested loops.
if (op->getParentRegion()->getParentOfType<scf::ForOp>())
More information about the Mlir-commits
mailing list