diff --git a/mlir/test/lib/Dialect/Test/TestPatterns.cpp b/mlir/test/lib/Dialect/Test/TestPatterns.cpp --- a/mlir/test/lib/Dialect/Test/TestPatterns.cpp +++ b/mlir/test/lib/Dialect/Test/TestPatterns.cpp @@ -192,7 +192,9 @@ return failure(); if (!toBeHoisted->hasAttr("eligible")) return failure(); - toBeHoisted->moveBefore(op); + // Hoisting means removing an op from the enclosing op. I.e., the enclosing + // op is modified. + rewriter.updateRootInPlace(op, [&]() { toBeHoisted->moveBefore(op); }); return success(); } }; @@ -316,7 +318,8 @@ Operation *newOp = rewriter.create(op->getLoc(), op->getName().getIdentifier(), op->getOperands(), op->getResultTypes()); - op->setAttr("skip", rewriter.getBoolAttr(true)); + rewriter.updateRootInPlace( + op, [&]() { op->setAttr("skip", rewriter.getBoolAttr(true)); }); newOp->setAttr("skip", rewriter.getBoolAttr(true)); return success();