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();
}
};
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();