[Mlir-commits] [mlir] [mlir][memref] canonicalization for erasing copying subview to identical subview (PR #125852)

Mehdi Amini llvmlistbot at llvm.org
Fri Feb 28 02:20:54 PST 2025


================
@@ -824,8 +824,23 @@ struct FoldSelfCopy : public OpRewritePattern<CopyOp> {
 
   LogicalResult matchAndRewrite(CopyOp copyOp,
                                 PatternRewriter &rewriter) const override {
-    if (copyOp.getSource() != copyOp.getTarget())
-      return failure();
+    if (copyOp.getSource() != copyOp.getTarget()) {
+      // We can still fold if source and target are similar SubViews.
+      auto source = copyOp.getSource().getDefiningOp<SubViewOp>();
+      auto target = copyOp.getTarget().getDefiningOp<SubViewOp>();
+      if (!source || !target) {
+        return failure();
+      }
----------------
joker-eph wrote:

```suggestion
      if (!source || !target)
        return failure();
```

https://github.com/llvm/llvm-project/pull/125852


More information about the Mlir-commits mailing list