@@ -795,10 +795,10 @@ rewriteSpGEMM(PatternRewriter &rewriter, linalg::GenericOp op, bool enableRT,
795
795
Value rowC = e1 .getResult (0 );
796
796
token = e1 .getAsyncToken ();
797
797
auto e2 = genAllocBuffer (rewriter, loc, cTp.getCrdType (), zero, token);
798
- Value colC = e2 .getResult (0 );
798
+ Value colC = e2 .getResult (0 ); // no free needed
799
799
token = e2 .getAsyncToken ();
800
800
auto e3 = genAllocBuffer (rewriter, loc, dnCType, zero, token);
801
- Value valC = e3 .getResult (0 );
801
+ Value valC = e3 .getResult (0 ); // no free needed
802
802
token = e3 .getAsyncToken ();
803
803
Operation *spGenC =
804
804
genSpMat (rewriter, loc, spmatHandleTp, tokenTp, token, szm, szn, zero,
@@ -881,6 +881,17 @@ rewriteSpGEMM(PatternRewriter &rewriter, linalg::GenericOp op, bool enableRT,
881
881
token = genCopyMemRef (rewriter, loc, rowH, rowC, token);
882
882
token = genCopyMemRef (rewriter, loc, colH, colC, token);
883
883
token = genCopyMemRef (rewriter, loc, valH, valC, token);
884
+ token = genDeallocMemRef (rewriter, loc, rowA, token);
885
+ token = genDeallocMemRef (rewriter, loc, colA, token);
886
+ token = genDeallocMemRef (rewriter, loc, valA, token);
887
+ token = genDeallocMemRef (rewriter, loc, rowB, token);
888
+ token = genDeallocMemRef (rewriter, loc, colB, token);
889
+ token = genDeallocMemRef (rewriter, loc, valB, token);
890
+ token = genDeallocMemRef (rewriter, loc, rowC, token);
891
+ token = genDeallocMemRef (rewriter, loc, colC, token);
892
+ token = genDeallocMemRef (rewriter, loc, valC, token);
893
+ token = genDeallocMemRef (rewriter, loc, buffer1, token);
894
+ token = genDeallocMemRef (rewriter, loc, buffer2, token);
884
895
tokens.push_back (token);
885
896
genBlockingWait (rewriter, loc, tokens);
886
897
tokens.clear ();
0 commit comments