[Mlir-commits] [mlir] [mlir] Extend `tile_using_for` verifier to fix a crash (PR #98366)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Jul 10 11:52:47 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir-linalg
Author: Felix Schneider (ubfx)
<details>
<summary>Changes</summary>
This patch adds a check for the correct number of `loops` results of the `transform.structured.tile_using_for` Op to the verifier, fixing a crash.
Fix https://github.com/llvm/llvm-project/issues/98008
---
Full diff: https://github.com/llvm/llvm-project/pull/98366.diff
1 Files Affected:
- (modified) mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp (+6)
``````````diff
diff --git a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
index 4eb334f8bbbfa..e53426083527a 100644
--- a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+++ b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
@@ -2890,6 +2890,12 @@ LogicalResult transform::TileUsingForOp::verify() {
return emitOpError("expected same number of sizes (")
<< getMixedSizes().size() << ") and scalable sizes ()"
<< getScalableSizes().size() << ")";
+ auto staticSizes = getStaticSizes();
+ unsigned numExpectedLoops = staticSizes.size() - llvm::count(staticSizes, 0);
+ if (getLoops().size() != numExpectedLoops)
+ return emitOpError("expected number of loops to tile (")
+ << numExpectedLoops << ") to match number of `loops` results ("
+ << getLoops().size() << ")";
return success();
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/98366
More information about the Mlir-commits
mailing list