[mlir][sparse] fix memory leakage in concatenate rewriter.
authorPeiming Liu <peiming@google.com>
Wed, 16 Nov 2022 00:00:33 +0000 (00:00 +0000)
committerPeiming Liu <peiming@google.com>
Wed, 16 Nov 2022 00:10:33 +0000 (00:10 +0000)
Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D138074

mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp

index 6fab361..2d2f903 100644 (file)
@@ -499,7 +499,10 @@ struct ConcatenateRewriter : public OpRewritePattern<ConcatenateOp> {
     }
 
     cooBuffer = rewriter.create<LoadOp>(loc, cooBuffer, true);
-    rewriter.replaceOpWithNewOp<ConvertOp>(op, rtp, cooBuffer);
+    Value converted =
+        rewriter.create<ConvertOp>(loc, rtp, cooBuffer).getResult();
+    rewriter.create<DeallocTensorOp>(loc, cooBuffer);
+    rewriter.replaceOp(op, converted);
     return success();
   }
 };