[mlir][sparse] Fix incorrect API usage in RewritePatterns
authorMatthias Springer <me@m-sp.org>
Thu, 25 May 2023 06:45:05 +0000 (08:45 +0200)
committerMatthias Springer <me@m-sp.org>
Thu, 25 May 2023 06:52:47 +0000 (08:52 +0200)
Incorrect API usage was detected by
`MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS`.

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

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

index 6ee1c1b..ce9490c 100644 (file)
@@ -367,7 +367,9 @@ public:
     if (tensor::isSameTypeWithoutEncoding(srcType, dstType)) {
       if (Operation *def = op.getSource().getDefiningOp()) {
         if (def->hasOneUse() && isa<tensor::ExtractSliceOp>(def)) {
-          def->getResult(0).setType(op->getResultTypes()[0]);
+          rewriter.updateRootInPlace(def, [&]() {
+            def->getResult(0).setType(op->getResultTypes()[0]);
+          });
           rewriter.replaceOp(op, def->getResult(0));
           return success();
         }