[Mlir-commits] [mlir] d480359 - [mlir][sparse] Do not access operation after it was replaced (#146546)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Tue Jul 1 12:39:58 PDT 2025


Author: Matthias Springer
Date: 2025-07-01T21:39:54+02:00
New Revision: d48035942050781796b95af143e5a911378553de

URL: https://github.com/llvm/llvm-project/commit/d48035942050781796b95af143e5a911378553de
DIFF: https://github.com/llvm/llvm-project/commit/d48035942050781796b95af143e5a911378553de.diff

LOG: [mlir][sparse] Do not access operation after it was replaced (#146546)

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

Added: 
    

Modified: 
    mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
index 7f0b657687442..65adc37808fe4 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
@@ -729,9 +729,9 @@ class SparseTensorCompressConverter : public OpConversionPattern<CompressOp> {
     createFuncCall(rewriter, loc, name, {},
                    {tensor, lvlCoords, values, filled, added, count},
                    EmitCInterface::On);
+    Operation *parent = getTop(op);
     rewriter.replaceOp(op, adaptor.getTensor());
     // Deallocate the buffers on exit of the loop nest.
-    Operation *parent = getTop(op);
     rewriter.setInsertionPointAfter(parent);
     rewriter.create<memref::DeallocOp>(loc, values);
     rewriter.create<memref::DeallocOp>(loc, filled);


        


More information about the Mlir-commits mailing list