[Mlir-commits] [mlir] [mlir][bufferization] Do not access operation after it was replaced (PR #146860)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Thu Jul 3 04:21:13 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-mlir

Author: Matthias Springer (matthias-springer)

<details>
<summary>Changes</summary>

Accessing an erased operation will no longer work during a One-Shot Dialect Conversion.

---
Full diff: https://github.com/llvm/llvm-project/pull/146860.diff


1 Files Affected:

- (modified) mlir/lib/Conversion/BufferizationToMemRef/BufferizationToMemRef.cpp (+1-1) 


``````````diff
diff --git a/mlir/lib/Conversion/BufferizationToMemRef/BufferizationToMemRef.cpp b/mlir/lib/Conversion/BufferizationToMemRef/BufferizationToMemRef.cpp
index 0b5a5d8e71063..1d253632bb5a1 100644
--- a/mlir/lib/Conversion/BufferizationToMemRef/BufferizationToMemRef.cpp
+++ b/mlir/lib/Conversion/BufferizationToMemRef/BufferizationToMemRef.cpp
@@ -111,8 +111,8 @@ struct CloneOpConversion : public OpConversionPattern<bufferization::CloneOp> {
             rewriter.create<memref::CastOp>(op->getLoc(), memrefType, alloc);
     }
 
-    rewriter.replaceOp(op, alloc);
     rewriter.create<memref::CopyOp>(loc, op.getInput(), alloc);
+    rewriter.replaceOp(op, alloc);
     return success();
   }
 };

``````````

</details>


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


More information about the Mlir-commits mailing list