diff --git a/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp b/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp --- a/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp @@ -1294,7 +1294,12 @@ patterns, LinalgElementwiseFusionOptions().setControlFoldingReshapes( allowFoldingUnitDimReshapes ? allowFoldingFn : skipUnitDimReshape)); - (void)applyPatternsAndFoldGreedily(op->getRegions(), std::move(patterns)); + + // Use TopDownTraversal for compile time reasons + GreedyRewriteConfig grc; + grc.useTopDownTraversal = true; + (void)applyPatternsAndFoldGreedily(op->getRegions(), std::move(patterns), + grc); } };