[Mlir-commits] [mlir] 68ce637 - [mlir][Transforms][NFC] Dialect Conversion: Replace after legalizing constants (#134384)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Sat Apr 5 06:20:29 PDT 2025


Author: Matthias Springer
Date: 2025-04-05T06:20:25-07:00
New Revision: 68ce637872a2e1a1dedbb9caa6eacf15ec5c7b99

URL: https://github.com/llvm/llvm-project/commit/68ce637872a2e1a1dedbb9caa6eacf15ec5c7b99
DIFF: https://github.com/llvm/llvm-project/commit/68ce637872a2e1a1dedbb9caa6eacf15ec5c7b99.diff

LOG: [mlir][Transforms][NFC] Dialect Conversion: Replace after legalizing constants (#134384)

When folding an op during a conversion, first try to legalize all
generated constants, then replace the original operation. This is
slightly more efficient because fewer rewrites must be rolled back in
case a generated constant could not be legalized.

Note: This is in preparation of the One-Shot Dialect Conversion
refactoring.

Added: 
    

Modified: 
    mlir/lib/Transforms/Utils/DialectConversion.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Transforms/Utils/DialectConversion.cpp b/mlir/lib/Transforms/Utils/DialectConversion.cpp
index 4554801b3a388..566dab7f30adb 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();
 }


        


More information about the Mlir-commits mailing list