[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