diff --git a/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp b/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp --- a/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp +++ b/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp @@ -535,8 +535,11 @@ bool simplifyLocally(ArrayRef op); void addToWorklist(Operation *op) override { - if (!strictMode || strictModeFilteredOps.contains(op)) - GreedyPatternRewriteDriver::addToWorklist(op); + while (op) { + if (!strictMode || strictModeFilteredOps.contains(op)) + GreedyPatternRewriteDriver::addToWorklist(op); + op = op->getParentOp(); + } } private: