From d7704af439d632eb025bbda3441ccff73668f7a5 Mon Sep 17 00:00:00 2001 From: Maksim Levental Date: Fri, 28 Mar 2025 22:40:30 -0400 Subject: [PATCH] [mlir] fix `maybeReplaceWithConstant` in IntRangeOptimizations --- .../lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mlir/lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp b/mlir/lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp index 1cb9453ccf3c9..602d80a45993e 100644 --- a/mlir/lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp +++ b/mlir/lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp @@ -91,8 +91,11 @@ LogicalResult maybeReplaceWithConstant(DataFlowSolver &solver, if (!constOp) return failure(); - copyIntegerRange(solver, value, constOp->getResult(0)); - rewriter.replaceAllUsesWith(value, constOp->getResult(0)); + OpResult res = constOp->getResult(0); + if (solver.lookupState(res)) + solver.eraseState(res); + copyIntegerRange(solver, value, res); + rewriter.replaceAllUsesWith(value, res); return success(); } } // namespace mlir::dataflow