Check if the operation is already in the worklist before adding it.
PiperOrigin-RevId: 225379496
diff --git a/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp b/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
index 518f117..554e3cb 100644
--- a/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
+++ b/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
@@ -40,6 +40,10 @@
void simplifyFunction(Function *currentFunction, WorklistRewriter &rewriter);
void addToWorklist(Operation *op) {
+ // Check to see if the worklist already contains this op.
+ if (worklistMap.count(op))
+ return;
+
worklistMap[op] = worklist.size();
worklist.push_back(op);
}