Skip to content

[mlir] Use llvm::append_range (NFC) #135722

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

kazutakahirata
Copy link
Contributor

No description provided.

@llvmbot
Copy link
Member

llvmbot commented Apr 15, 2025

@llvm/pr-subscribers-mlir-memref
@llvm/pr-subscribers-mlir-tosa
@llvm/pr-subscribers-mlir-presburger
@llvm/pr-subscribers-mlir-linalg

@llvm/pr-subscribers-mlir-core

Author: Kazu Hirata (kazutakahirata)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/135722.diff

14 Files Affected:

  • (modified) mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h (+2-4)
  • (modified) mlir/lib/Analysis/Presburger/Barvinok.cpp (+1-1)
  • (modified) mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp (+3-3)
  • (modified) mlir/lib/Analysis/Presburger/Simplex.cpp (+2-2)
  • (modified) mlir/lib/Bytecode/Writer/BytecodeWriter.cpp (+2-3)
  • (modified) mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp (+1-1)
  • (modified) mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp (+4-10)
  • (modified) mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp (+2-2)
  • (modified) mlir/lib/Dialect/SCF/IR/SCF.cpp (+1-2)
  • (modified) mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp (+1-2)
  • (modified) mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp (+3-7)
  • (modified) mlir/lib/Query/Query.cpp (+2-4)
  • (modified) mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp (+1-1)
  • (modified) mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp (+1-2)
diff --git a/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h b/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h
index db5b6b6a95918..b81042b4e6f9d 100644
--- a/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h
+++ b/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h
@@ -80,12 +80,10 @@ class GeneratingFunction {
     sumSigns.append(gf.signs);
 
     std::vector<ParamPoint> sumNumerators = numerators;
-    sumNumerators.insert(sumNumerators.end(), gf.numerators.begin(),
-                         gf.numerators.end());
+    llvm::append_range(sumNumerators, gf.numerators);
 
     std::vector<std::vector<Point>> sumDenominators = denominators;
-    sumDenominators.insert(sumDenominators.end(), gf.denominators.begin(),
-                           gf.denominators.end());
+    llvm::append_range(sumDenominators, gf.denominators);
     return GeneratingFunction(numParam, sumSigns, sumNumerators,
                               sumDenominators);
   }
diff --git a/mlir/lib/Analysis/Presburger/Barvinok.cpp b/mlir/lib/Analysis/Presburger/Barvinok.cpp
index 0e82f973b49b9..4546e49639fb9 100644
--- a/mlir/lib/Analysis/Presburger/Barvinok.cpp
+++ b/mlir/lib/Analysis/Presburger/Barvinok.cpp
@@ -695,7 +695,7 @@ mlir::presburger::detail::computeNumTerms(const GeneratingFunction &gf) {
   // d_{ij} and substitute x accordingly.
   std::vector<Point> allDenominators;
   for (ArrayRef<Point> den : gf.getDenominators())
-    allDenominators.insert(allDenominators.end(), den.begin(), den.end());
+    llvm::append_range(allDenominators, den);
   Point mu = getNonOrthogonalVector(allDenominators);
 
   unsigned numParams = gf.getNumParams();
diff --git a/mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp b/mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp
index 940a28f0ca006..84d885fd96c21 100644
--- a/mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp
+++ b/mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp
@@ -48,7 +48,7 @@ QuasiPolynomial QuasiPolynomial::operator+(const QuasiPolynomial &x) const {
   SmallVector<Fraction> sumCoeffs = coefficients;
   sumCoeffs.append(x.coefficients);
   std::vector<std::vector<SmallVector<Fraction>>> sumAff = affine;
-  sumAff.insert(sumAff.end(), x.affine.begin(), x.affine.end());
+  llvm::append_range(sumAff, x.affine);
   return QuasiPolynomial(getNumInputs(), sumCoeffs, sumAff);
 }
 
@@ -79,8 +79,8 @@ QuasiPolynomial QuasiPolynomial::operator*(const QuasiPolynomial &x) const {
   for (const std::vector<SmallVector<Fraction>> &term : affine) {
     for (const std::vector<SmallVector<Fraction>> &xterm : x.affine) {
       product.clear();
-      product.insert(product.end(), term.begin(), term.end());
-      product.insert(product.end(), xterm.begin(), xterm.end());
+      llvm::append_range(product, term);
+      llvm::append_range(product, xterm);
       aff.emplace_back(product);
     }
   }
diff --git a/mlir/lib/Analysis/Presburger/Simplex.cpp b/mlir/lib/Analysis/Presburger/Simplex.cpp
index 4ffa2d546af4d..4eb6e6da2950c 100644
--- a/mlir/lib/Analysis/Presburger/Simplex.cpp
+++ b/mlir/lib/Analysis/Presburger/Simplex.cpp
@@ -1507,8 +1507,8 @@ Simplex Simplex::makeProduct(const Simplex &a, const Simplex &b) {
   auto concat = [](ArrayRef<Unknown> v, ArrayRef<Unknown> w) {
     SmallVector<Unknown, 8> result;
     result.reserve(v.size() + w.size());
-    result.insert(result.end(), v.begin(), v.end());
-    result.insert(result.end(), w.begin(), w.end());
+    llvm::append_range(result, v);
+    llvm::append_range(result, w);
     return result;
   };
   result.con = concat(a.con, b.con);
diff --git a/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp b/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
index 404d361a50c1f..6ebeac5ae69f4 100644
--- a/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
+++ b/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
@@ -568,9 +568,8 @@ class PropertiesSectionBuilder {
     std::vector<char> &newStorage = propertiesStorage.back();
     size_t propertiesSize = sizeScratch.size() + rawProperties.size();
     newStorage.reserve(propertiesSize);
-    newStorage.insert(newStorage.end(), sizeScratch.begin(), sizeScratch.end());
-    newStorage.insert(newStorage.end(), rawProperties.begin(),
-                      rawProperties.end());
+    llvm::append_range(newStorage, sizeScratch);
+    llvm::append_range(newStorage, rawProperties);
 
     // Try to de-duplicate the new serialized properties.
     // If the properties is a duplicate, pop it back from the storage.
diff --git a/mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp b/mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
index 6f93099f5f947..402be0f29e5c7 100644
--- a/mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
+++ b/mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
@@ -235,7 +235,7 @@ static CoroMachinery setupCoroMachinery(func::FuncOp func) {
   SmallVector<Value, 4> ret;
   if (retToken)
     ret.push_back(*retToken);
-  ret.insert(ret.end(), retValues.begin(), retValues.end());
+  llvm::append_range(ret, retValues);
   builder.create<func::ReturnOp>(ret);
 
   // `async.await` op lowering will create resume blocks for async
diff --git a/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp b/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp
index 9f5000b70b6f6..0ddf03bf317e7 100644
--- a/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp
+++ b/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp
@@ -676,11 +676,8 @@ bubbleUpPackOpThroughCollapseShape(tensor::CollapseShapeOp collapseOp,
   // new permutation after bubbling. This is because moving a collapsed dim is
   // equivalent to moving the associated source dims together.
   SmallVector<int64_t> newOuterDimsPerm;
-  for (auto outerPos : outerDimsPerm) {
-    newOuterDimsPerm.insert(newOuterDimsPerm.end(),
-                            reassocIndices[outerPos].begin(),
-                            reassocIndices[outerPos].end());
-  }
+  for (auto outerPos : outerDimsPerm)
+    llvm::append_range(newOuterDimsPerm, reassocIndices[outerPos]);
 
   auto emptyOp = linalg::PackOp::createDestinationTensor(
       rewriter, packOp.getLoc(), collapseOp.getSrc(), packOp.getMixedTiles(),
@@ -925,11 +922,8 @@ static LogicalResult pushDownUnPackOpThroughExpandShape(
   // new permutation after pushing. This is because moving a source dim is
   // equivalent to moving the associated expanded dims together.
   SmallVector<int64_t> newOuterDimsPerm;
-  for (auto outerPos : outerDimsPerm) {
-    newOuterDimsPerm.insert(newOuterDimsPerm.end(),
-                            reassocIndices[outerPos].begin(),
-                            reassocIndices[outerPos].end());
-  }
+  for (auto outerPos : outerDimsPerm)
+    llvm::append_range(newOuterDimsPerm, reassocIndices[outerPos]);
 
   SmallVector<ReassociationIndices> newReassocIndices = reassocIndices;
   // First apply the permutation on the reassociations of the outer dims.
diff --git a/mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp b/mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp
index 270b43100a3a7..ac397b597fd14 100644
--- a/mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp
+++ b/mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp
@@ -141,7 +141,7 @@ static bool resultIsNotRead(Operation *op, std::vector<Operation *> &uses) {
     }
     return false;
   }
-  uses.insert(uses.end(), opUses.begin(), opUses.end());
+  llvm::append_range(uses, opUses);
   return true;
 }
 
@@ -150,7 +150,7 @@ void eraseDeadAllocAndStores(RewriterBase &rewriter, Operation *parentOp) {
   parentOp->walk([&](memref::AllocOp op) {
     std::vector<Operation *> candidates;
     if (resultIsNotRead(op, candidates)) {
-      opToErase.insert(opToErase.end(), candidates.begin(), candidates.end());
+      llvm::append_range(opToErase, candidates);
       opToErase.push_back(op.getOperation());
     }
   });
diff --git a/mlir/lib/Dialect/SCF/IR/SCF.cpp b/mlir/lib/Dialect/SCF/IR/SCF.cpp
index 344941da260fe..c454f342b4204 100644
--- a/mlir/lib/Dialect/SCF/IR/SCF.cpp
+++ b/mlir/lib/Dialect/SCF/IR/SCF.cpp
@@ -2017,8 +2017,7 @@ IfOp::inferReturnTypes(MLIRContext *ctx, std::optional<Location> loc,
   if (!yieldOp)
     return failure();
   TypeRange types = yieldOp.getOperandTypes();
-  inferredReturnTypes.insert(inferredReturnTypes.end(), types.begin(),
-                             types.end());
+  llvm::append_range(inferredReturnTypes, types);
   return success();
 }
 
diff --git a/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp b/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
index eb7981b313d1d..8f62253796175 100644
--- a/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
+++ b/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
@@ -552,8 +552,7 @@ SmallVector<StringRef> TosaProfileCompliance::stringifyProfile(
 
   for (const auto &profiles : profileSet) {
     auto tempStrings = stringifyProfile<T>(profiles);
-    debugStrings.insert(debugStrings.end(), tempStrings.begin(),
-                        tempStrings.end());
+    llvm::append_range(debugStrings, tempStrings);
   }
 
   return debugStrings;
diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp
index 66c23dd6e7495..b801692e9ecc9 100644
--- a/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp
+++ b/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp
@@ -258,8 +258,7 @@ createFullPartialLinalgCopy(RewriterBase &b, vector::TransferReadOp xferOp,
       [&](OpBuilder &b, Location loc) {
         Value res = castToCompatibleMemRefType(b, memref, compatibleMemRefType);
         scf::ValueVector viewAndIndices{res};
-        viewAndIndices.insert(viewAndIndices.end(), xferOp.getIndices().begin(),
-                              xferOp.getIndices().end());
+        llvm::append_range(viewAndIndices, xferOp.getIndices());
         b.create<scf::YieldOp>(loc, viewAndIndices);
       },
       [&](OpBuilder &b, Location loc) {
@@ -312,8 +311,7 @@ static scf::IfOp createFullPartialVectorTransferRead(
       [&](OpBuilder &b, Location loc) {
         Value res = castToCompatibleMemRefType(b, memref, compatibleMemRefType);
         scf::ValueVector viewAndIndices{res};
-        viewAndIndices.insert(viewAndIndices.end(), xferOp.getIndices().begin(),
-                              xferOp.getIndices().end());
+        llvm::append_range(viewAndIndices, xferOp.getIndices());
         b.create<scf::YieldOp>(loc, viewAndIndices);
       },
       [&](OpBuilder &b, Location loc) {
@@ -362,9 +360,7 @@ getLocationToWriteFullVec(RewriterBase &b, vector::TransferWriteOp xferOp,
             Value res =
                 castToCompatibleMemRefType(b, memref, compatibleMemRefType);
             scf::ValueVector viewAndIndices{res};
-            viewAndIndices.insert(viewAndIndices.end(),
-                                  xferOp.getIndices().begin(),
-                                  xferOp.getIndices().end());
+            llvm::append_range(viewAndIndices, xferOp.getIndices());
             b.create<scf::YieldOp>(loc, viewAndIndices);
           },
           [&](OpBuilder &b, Location loc) {
diff --git a/mlir/lib/Query/Query.cpp b/mlir/lib/Query/Query.cpp
index 7d9f360670051..869ee8f2ae1dc 100644
--- a/mlir/lib/Query/Query.cpp
+++ b/mlir/lib/Query/Query.cpp
@@ -54,12 +54,10 @@ static Operation *extractFunction(std::vector<Operation *> &ops,
       slice.push_back(op);
 
     // All results are returned by the extracted function.
-    outputTypes.insert(outputTypes.end(), op->getResults().getTypes().begin(),
-                       op->getResults().getTypes().end());
+    llvm::append_range(outputTypes, op->getResults().getTypes());
 
     // Track all values that need to be taken as input to function.
-    values.insert(values.end(), op->getOperands().begin(),
-                  op->getOperands().end());
+    llvm::append_range(values, op->getOperands());
   }
 
   // Create the function
diff --git a/mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp b/mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
index 873ecb5b70e02..c39540da396b6 100644
--- a/mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
+++ b/mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
@@ -386,7 +386,7 @@ PDLDocument::PDLDocument(const lsp::URIForFile &uri, StringRef contents,
   llvm::SmallString<32> uriDirectory(uri.file());
   llvm::sys::path::remove_filename(uriDirectory);
   includeDirs.push_back(uriDirectory.str().str());
-  includeDirs.insert(includeDirs.end(), extraDirs.begin(), extraDirs.end());
+  llvm::append_range(includeDirs, extraDirs);
 
   sourceMgr.setIncludeDirs(includeDirs);
   sourceMgr.AddNewSourceBuffer(std::move(memBuffer), SMLoc());
diff --git a/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp b/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
index 6c4ec06fffb32..2d13c9005f4d2 100644
--- a/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
+++ b/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
@@ -403,8 +403,7 @@ TableGenTextFile::TableGenTextFile(
   llvm::SmallString<32> uriDirectory(uri.file());
   llvm::sys::path::remove_filename(uriDirectory);
   includeDirs.push_back(uriDirectory.str().str());
-  includeDirs.insert(includeDirs.end(), extraIncludeDirs.begin(),
-                     extraIncludeDirs.end());
+  llvm::append_range(includeDirs, extraIncludeDirs);
 
   // Initialize the file.
   initialize(uri, version, diagnostics);

@llvmbot
Copy link
Member

llvmbot commented Apr 15, 2025

@llvm/pr-subscribers-mlir-scf

Author: Kazu Hirata (kazutakahirata)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/135722.diff

14 Files Affected:

  • (modified) mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h (+2-4)
  • (modified) mlir/lib/Analysis/Presburger/Barvinok.cpp (+1-1)
  • (modified) mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp (+3-3)
  • (modified) mlir/lib/Analysis/Presburger/Simplex.cpp (+2-2)
  • (modified) mlir/lib/Bytecode/Writer/BytecodeWriter.cpp (+2-3)
  • (modified) mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp (+1-1)
  • (modified) mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp (+4-10)
  • (modified) mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp (+2-2)
  • (modified) mlir/lib/Dialect/SCF/IR/SCF.cpp (+1-2)
  • (modified) mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp (+1-2)
  • (modified) mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp (+3-7)
  • (modified) mlir/lib/Query/Query.cpp (+2-4)
  • (modified) mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp (+1-1)
  • (modified) mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp (+1-2)
diff --git a/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h b/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h
index db5b6b6a95918..b81042b4e6f9d 100644
--- a/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h
+++ b/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h
@@ -80,12 +80,10 @@ class GeneratingFunction {
     sumSigns.append(gf.signs);
 
     std::vector<ParamPoint> sumNumerators = numerators;
-    sumNumerators.insert(sumNumerators.end(), gf.numerators.begin(),
-                         gf.numerators.end());
+    llvm::append_range(sumNumerators, gf.numerators);
 
     std::vector<std::vector<Point>> sumDenominators = denominators;
-    sumDenominators.insert(sumDenominators.end(), gf.denominators.begin(),
-                           gf.denominators.end());
+    llvm::append_range(sumDenominators, gf.denominators);
     return GeneratingFunction(numParam, sumSigns, sumNumerators,
                               sumDenominators);
   }
diff --git a/mlir/lib/Analysis/Presburger/Barvinok.cpp b/mlir/lib/Analysis/Presburger/Barvinok.cpp
index 0e82f973b49b9..4546e49639fb9 100644
--- a/mlir/lib/Analysis/Presburger/Barvinok.cpp
+++ b/mlir/lib/Analysis/Presburger/Barvinok.cpp
@@ -695,7 +695,7 @@ mlir::presburger::detail::computeNumTerms(const GeneratingFunction &gf) {
   // d_{ij} and substitute x accordingly.
   std::vector<Point> allDenominators;
   for (ArrayRef<Point> den : gf.getDenominators())
-    allDenominators.insert(allDenominators.end(), den.begin(), den.end());
+    llvm::append_range(allDenominators, den);
   Point mu = getNonOrthogonalVector(allDenominators);
 
   unsigned numParams = gf.getNumParams();
diff --git a/mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp b/mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp
index 940a28f0ca006..84d885fd96c21 100644
--- a/mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp
+++ b/mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp
@@ -48,7 +48,7 @@ QuasiPolynomial QuasiPolynomial::operator+(const QuasiPolynomial &x) const {
   SmallVector<Fraction> sumCoeffs = coefficients;
   sumCoeffs.append(x.coefficients);
   std::vector<std::vector<SmallVector<Fraction>>> sumAff = affine;
-  sumAff.insert(sumAff.end(), x.affine.begin(), x.affine.end());
+  llvm::append_range(sumAff, x.affine);
   return QuasiPolynomial(getNumInputs(), sumCoeffs, sumAff);
 }
 
@@ -79,8 +79,8 @@ QuasiPolynomial QuasiPolynomial::operator*(const QuasiPolynomial &x) const {
   for (const std::vector<SmallVector<Fraction>> &term : affine) {
     for (const std::vector<SmallVector<Fraction>> &xterm : x.affine) {
       product.clear();
-      product.insert(product.end(), term.begin(), term.end());
-      product.insert(product.end(), xterm.begin(), xterm.end());
+      llvm::append_range(product, term);
+      llvm::append_range(product, xterm);
       aff.emplace_back(product);
     }
   }
diff --git a/mlir/lib/Analysis/Presburger/Simplex.cpp b/mlir/lib/Analysis/Presburger/Simplex.cpp
index 4ffa2d546af4d..4eb6e6da2950c 100644
--- a/mlir/lib/Analysis/Presburger/Simplex.cpp
+++ b/mlir/lib/Analysis/Presburger/Simplex.cpp
@@ -1507,8 +1507,8 @@ Simplex Simplex::makeProduct(const Simplex &a, const Simplex &b) {
   auto concat = [](ArrayRef<Unknown> v, ArrayRef<Unknown> w) {
     SmallVector<Unknown, 8> result;
     result.reserve(v.size() + w.size());
-    result.insert(result.end(), v.begin(), v.end());
-    result.insert(result.end(), w.begin(), w.end());
+    llvm::append_range(result, v);
+    llvm::append_range(result, w);
     return result;
   };
   result.con = concat(a.con, b.con);
diff --git a/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp b/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
index 404d361a50c1f..6ebeac5ae69f4 100644
--- a/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
+++ b/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
@@ -568,9 +568,8 @@ class PropertiesSectionBuilder {
     std::vector<char> &newStorage = propertiesStorage.back();
     size_t propertiesSize = sizeScratch.size() + rawProperties.size();
     newStorage.reserve(propertiesSize);
-    newStorage.insert(newStorage.end(), sizeScratch.begin(), sizeScratch.end());
-    newStorage.insert(newStorage.end(), rawProperties.begin(),
-                      rawProperties.end());
+    llvm::append_range(newStorage, sizeScratch);
+    llvm::append_range(newStorage, rawProperties);
 
     // Try to de-duplicate the new serialized properties.
     // If the properties is a duplicate, pop it back from the storage.
diff --git a/mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp b/mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
index 6f93099f5f947..402be0f29e5c7 100644
--- a/mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
+++ b/mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
@@ -235,7 +235,7 @@ static CoroMachinery setupCoroMachinery(func::FuncOp func) {
   SmallVector<Value, 4> ret;
   if (retToken)
     ret.push_back(*retToken);
-  ret.insert(ret.end(), retValues.begin(), retValues.end());
+  llvm::append_range(ret, retValues);
   builder.create<func::ReturnOp>(ret);
 
   // `async.await` op lowering will create resume blocks for async
diff --git a/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp b/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp
index 9f5000b70b6f6..0ddf03bf317e7 100644
--- a/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp
+++ b/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp
@@ -676,11 +676,8 @@ bubbleUpPackOpThroughCollapseShape(tensor::CollapseShapeOp collapseOp,
   // new permutation after bubbling. This is because moving a collapsed dim is
   // equivalent to moving the associated source dims together.
   SmallVector<int64_t> newOuterDimsPerm;
-  for (auto outerPos : outerDimsPerm) {
-    newOuterDimsPerm.insert(newOuterDimsPerm.end(),
-                            reassocIndices[outerPos].begin(),
-                            reassocIndices[outerPos].end());
-  }
+  for (auto outerPos : outerDimsPerm)
+    llvm::append_range(newOuterDimsPerm, reassocIndices[outerPos]);
 
   auto emptyOp = linalg::PackOp::createDestinationTensor(
       rewriter, packOp.getLoc(), collapseOp.getSrc(), packOp.getMixedTiles(),
@@ -925,11 +922,8 @@ static LogicalResult pushDownUnPackOpThroughExpandShape(
   // new permutation after pushing. This is because moving a source dim is
   // equivalent to moving the associated expanded dims together.
   SmallVector<int64_t> newOuterDimsPerm;
-  for (auto outerPos : outerDimsPerm) {
-    newOuterDimsPerm.insert(newOuterDimsPerm.end(),
-                            reassocIndices[outerPos].begin(),
-                            reassocIndices[outerPos].end());
-  }
+  for (auto outerPos : outerDimsPerm)
+    llvm::append_range(newOuterDimsPerm, reassocIndices[outerPos]);
 
   SmallVector<ReassociationIndices> newReassocIndices = reassocIndices;
   // First apply the permutation on the reassociations of the outer dims.
diff --git a/mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp b/mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp
index 270b43100a3a7..ac397b597fd14 100644
--- a/mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp
+++ b/mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp
@@ -141,7 +141,7 @@ static bool resultIsNotRead(Operation *op, std::vector<Operation *> &uses) {
     }
     return false;
   }
-  uses.insert(uses.end(), opUses.begin(), opUses.end());
+  llvm::append_range(uses, opUses);
   return true;
 }
 
@@ -150,7 +150,7 @@ void eraseDeadAllocAndStores(RewriterBase &rewriter, Operation *parentOp) {
   parentOp->walk([&](memref::AllocOp op) {
     std::vector<Operation *> candidates;
     if (resultIsNotRead(op, candidates)) {
-      opToErase.insert(opToErase.end(), candidates.begin(), candidates.end());
+      llvm::append_range(opToErase, candidates);
       opToErase.push_back(op.getOperation());
     }
   });
diff --git a/mlir/lib/Dialect/SCF/IR/SCF.cpp b/mlir/lib/Dialect/SCF/IR/SCF.cpp
index 344941da260fe..c454f342b4204 100644
--- a/mlir/lib/Dialect/SCF/IR/SCF.cpp
+++ b/mlir/lib/Dialect/SCF/IR/SCF.cpp
@@ -2017,8 +2017,7 @@ IfOp::inferReturnTypes(MLIRContext *ctx, std::optional<Location> loc,
   if (!yieldOp)
     return failure();
   TypeRange types = yieldOp.getOperandTypes();
-  inferredReturnTypes.insert(inferredReturnTypes.end(), types.begin(),
-                             types.end());
+  llvm::append_range(inferredReturnTypes, types);
   return success();
 }
 
diff --git a/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp b/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
index eb7981b313d1d..8f62253796175 100644
--- a/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
+++ b/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
@@ -552,8 +552,7 @@ SmallVector<StringRef> TosaProfileCompliance::stringifyProfile(
 
   for (const auto &profiles : profileSet) {
     auto tempStrings = stringifyProfile<T>(profiles);
-    debugStrings.insert(debugStrings.end(), tempStrings.begin(),
-                        tempStrings.end());
+    llvm::append_range(debugStrings, tempStrings);
   }
 
   return debugStrings;
diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp
index 66c23dd6e7495..b801692e9ecc9 100644
--- a/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp
+++ b/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp
@@ -258,8 +258,7 @@ createFullPartialLinalgCopy(RewriterBase &b, vector::TransferReadOp xferOp,
       [&](OpBuilder &b, Location loc) {
         Value res = castToCompatibleMemRefType(b, memref, compatibleMemRefType);
         scf::ValueVector viewAndIndices{res};
-        viewAndIndices.insert(viewAndIndices.end(), xferOp.getIndices().begin(),
-                              xferOp.getIndices().end());
+        llvm::append_range(viewAndIndices, xferOp.getIndices());
         b.create<scf::YieldOp>(loc, viewAndIndices);
       },
       [&](OpBuilder &b, Location loc) {
@@ -312,8 +311,7 @@ static scf::IfOp createFullPartialVectorTransferRead(
       [&](OpBuilder &b, Location loc) {
         Value res = castToCompatibleMemRefType(b, memref, compatibleMemRefType);
         scf::ValueVector viewAndIndices{res};
-        viewAndIndices.insert(viewAndIndices.end(), xferOp.getIndices().begin(),
-                              xferOp.getIndices().end());
+        llvm::append_range(viewAndIndices, xferOp.getIndices());
         b.create<scf::YieldOp>(loc, viewAndIndices);
       },
       [&](OpBuilder &b, Location loc) {
@@ -362,9 +360,7 @@ getLocationToWriteFullVec(RewriterBase &b, vector::TransferWriteOp xferOp,
             Value res =
                 castToCompatibleMemRefType(b, memref, compatibleMemRefType);
             scf::ValueVector viewAndIndices{res};
-            viewAndIndices.insert(viewAndIndices.end(),
-                                  xferOp.getIndices().begin(),
-                                  xferOp.getIndices().end());
+            llvm::append_range(viewAndIndices, xferOp.getIndices());
             b.create<scf::YieldOp>(loc, viewAndIndices);
           },
           [&](OpBuilder &b, Location loc) {
diff --git a/mlir/lib/Query/Query.cpp b/mlir/lib/Query/Query.cpp
index 7d9f360670051..869ee8f2ae1dc 100644
--- a/mlir/lib/Query/Query.cpp
+++ b/mlir/lib/Query/Query.cpp
@@ -54,12 +54,10 @@ static Operation *extractFunction(std::vector<Operation *> &ops,
       slice.push_back(op);
 
     // All results are returned by the extracted function.
-    outputTypes.insert(outputTypes.end(), op->getResults().getTypes().begin(),
-                       op->getResults().getTypes().end());
+    llvm::append_range(outputTypes, op->getResults().getTypes());
 
     // Track all values that need to be taken as input to function.
-    values.insert(values.end(), op->getOperands().begin(),
-                  op->getOperands().end());
+    llvm::append_range(values, op->getOperands());
   }
 
   // Create the function
diff --git a/mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp b/mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
index 873ecb5b70e02..c39540da396b6 100644
--- a/mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
+++ b/mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
@@ -386,7 +386,7 @@ PDLDocument::PDLDocument(const lsp::URIForFile &uri, StringRef contents,
   llvm::SmallString<32> uriDirectory(uri.file());
   llvm::sys::path::remove_filename(uriDirectory);
   includeDirs.push_back(uriDirectory.str().str());
-  includeDirs.insert(includeDirs.end(), extraDirs.begin(), extraDirs.end());
+  llvm::append_range(includeDirs, extraDirs);
 
   sourceMgr.setIncludeDirs(includeDirs);
   sourceMgr.AddNewSourceBuffer(std::move(memBuffer), SMLoc());
diff --git a/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp b/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
index 6c4ec06fffb32..2d13c9005f4d2 100644
--- a/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
+++ b/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
@@ -403,8 +403,7 @@ TableGenTextFile::TableGenTextFile(
   llvm::SmallString<32> uriDirectory(uri.file());
   llvm::sys::path::remove_filename(uriDirectory);
   includeDirs.push_back(uriDirectory.str().str());
-  includeDirs.insert(includeDirs.end(), extraIncludeDirs.begin(),
-                     extraIncludeDirs.end());
+  llvm::append_range(includeDirs, extraIncludeDirs);
 
   // Initialize the file.
   initialize(uri, version, diagnostics);

@kazutakahirata kazutakahirata merged commit eb7f514 into llvm:main Apr 15, 2025
21 of 22 checks passed
@kazutakahirata kazutakahirata deleted the cleanup_001_append_range_insert_mlir branch April 15, 2025 05:22
var-const pushed a commit to ldionne/llvm-project that referenced this pull request Apr 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants