From 0318123f67d1edb0fb6c05e5b508c8798146b10f Mon Sep 17 00:00:00 2001 From: Matthias Springer Date: Sat, 22 Jul 2023 08:30:40 +0200 Subject: [PATCH] [mlir][Transforms] GreedyPatternRewriteDriver: Fix `changed` parameter `changed` was not updated correctly when it was already set to "true" before calling `applyPatternsAndFoldGreedily`. Differential Revision: https://reviews.llvm.org/D155934 --- mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h b/mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h index aaf6f0a..b93ffd9 100644 --- a/mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h +++ b/mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h @@ -115,15 +115,17 @@ applyPatternsAndFoldGreedily(Operation *op, const FrozenRewritePatternSet &patterns, GreedyRewriteConfig config = GreedyRewriteConfig(), bool *changed = nullptr) { + bool anyRegionChanged = false; bool failed = false; for (Region ®ion : op->getRegions()) { bool regionChanged; failed |= applyPatternsAndFoldGreedily(region, patterns, config, ®ionChanged) .failed(); - if (changed) - *changed |= regionChanged; + anyRegionChanged |= regionChanged; } + if (changed) + *changed = anyRegionChanged; return failure(failed); } -- 2.7.4