[Mlir-commits] [mlir] dde327a - [MLIR][linalg] Move transform options at their last use (NFC) (#221076)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Thu Sep 3 15:54:28 PDT 2026


Author: Mehdi Amini
Date: 2026-09-03T22:54:22Z
New Revision: dde327a01fc50e279c4aa7406fd1b0055991fedf

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

LOG: [MLIR][linalg] Move transform options at their last use (NFC) (#221076)

Move locally assembled tiling and padding options into their owning
destinations at their last use. Remove a self-copy assignment around
setTileSizes while preserving its mutation.

Found by Coverity.

Assisted-by: Codex

Added: 
    

Modified: 
    mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
index 8299e1c2edb41..68e353b33eca3 100644
--- a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+++ b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
@@ -755,14 +755,14 @@ transform::FuseOp::apply(transform::TransformRewriter &rewriter,
     return status;
 
   scf::SCFTilingOptions tilingOptions;
-  tilingOptions.interchangeVector = tileInterchange;
+  tilingOptions.interchangeVector = std::move(tileInterchange);
   bool useForall = getUseForall();
   tilingOptions.setLoopType(useForall
                                 ? scf::SCFTilingOptions::LoopType::ForallOp
                                 : scf::SCFTilingOptions::LoopType::ForOp);
-  tilingOptions = tilingOptions.setTileSizes(mixedTileSizes);
+  tilingOptions.setTileSizes(mixedTileSizes);
   scf::SCFTileAndFuseOptions tileAndFuseOptions;
-  tileAndFuseOptions.tilingOptions = tilingOptions;
+  tileAndFuseOptions.tilingOptions = std::move(tilingOptions);
   // Optional caller-asserted pack/unpack inner-tile alignment (see
   // InnerTileAlignment).
   tileAndFuseOptions.tilingOptions.setInnerTileAlignments(
@@ -2295,9 +2295,9 @@ transform::PadOp::apply(transform::TransformRewriter &rewriter,
       padToMultipleOf =
           SmallVector<int64_t>(options.paddingDimensions.size(), 1);
 
-    options.padToMultipleOf = padToMultipleOf;
-    options.paddingValues = paddingValues;
-    options.nofoldFlags = nofoldFlags;
+    options.padToMultipleOf = std::move(padToMultipleOf);
+    options.paddingValues = std::move(paddingValues);
+    options.nofoldFlags = std::move(nofoldFlags);
     if (getCopyBackOp() ==
         bufferization::MaterializeInDestinationOp::getOperationName()) {
       options.copyBackOp = LinalgPaddingOptions::CopyBackOp::
@@ -2528,14 +2528,15 @@ transform::PadTilingInterfaceOp::apply(transform::TransformRewriter &rewriter,
 
     // Set options.
     PadTilingInterfaceOptions options;
-    options.setPaddingValues(paddingValues)
-        .setPaddingSizes(getMixedPaddingSizes())
+    options.paddingValues = std::move(paddingValues);
+    options.setPaddingSizes(getMixedPaddingSizes())
         .setPadToMultipleOf(getPadToMultipleOf());
 
     OpBuilder::InsertionGuard g(rewriter);
     rewriter.setInsertionPointAfter(targetOp);
     auto maybePadOps = rewriteAsPaddedOp(
-        rewriter, cast<TilingInterface>(targetOp.getOperation()), options);
+        rewriter, cast<TilingInterface>(targetOp.getOperation()),
+        std::move(options));
     if (failed(maybePadOps)) {
       auto diag = emitSilenceableError() << "failed to pad op";
       diag.attachNote(target->getLoc()) << "target op";


        


More information about the Mlir-commits mailing list