diff --git a/mlir/lib/Transforms/Utils/DialectConversion.cpp b/mlir/lib/Transforms/Utils/DialectConversion.cpp index 444c505b64232..0b342a0e5d4bc 100644 --- a/mlir/lib/Transforms/Utils/DialectConversion.cpp +++ b/mlir/lib/Transforms/Utils/DialectConversion.cpp @@ -2109,9 +2109,6 @@ OperationLegalizer::legalizeWithFold(Operation *op, if (replacementValues.empty()) return legalize(op, rewriter); - // Insert a replacement for 'op' with the folded replacement values. - rewriter.replaceOp(op, replacementValues); - // Recursively legalize any new constant operations. for (unsigned i = curState.numRewrites, e = rewriterImpl.rewrites.size(); i != e; ++i) { @@ -2128,6 +2125,9 @@ OperationLegalizer::legalizeWithFold(Operation *op, } } + // Insert a replacement for 'op' with the folded replacement values. + rewriter.replaceOp(op, replacementValues); + LLVM_DEBUG(logSuccess(rewriterImpl.logger, "")); return success(); }