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

Matthias Springer llvmlistbot at llvm.org
Thu Jul 3 04:20:40 PDT 2025


https://github.com/matthias-springer created https://github.com/llvm/llvm-project/pull/146860

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

>From 7cf8dd1605eeebd9ad0f3adc7b44431513022812 Mon Sep 17 00:00:00 2001
From: Matthias Springer <me at m-sp.org>
Date: Thu, 3 Jul 2025 11:19:18 +0000
Subject: [PATCH] [mlir][bufferization] Do not access operation after it was
 replaced

Accessing an erased operation will no longer work during a One-Shot Dialect Conversion.
---
 .../Conversion/BufferizationToMemRef/BufferizationToMemRef.cpp  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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();
   }
 };



More information about the Mlir-commits mailing list