[Mlir-commits] [mlir] [mlir][NFC] Use `llvm::sort` (PR #140261)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Fri May 16 07:49:10 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-mlir-linalg

Author: Iris Shi (el-ev)

<details>
<summary>Changes</summary>



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


8 Files Affected:

- (modified) mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp (+4-4) 
- (modified) mlir/lib/Dialect/Bufferization/IR/BufferDeallocationOpInterface.cpp (+1-2) 
- (modified) mlir/lib/Dialect/Linalg/Transforms/DecomposeGenericByUnfoldingPermutation.cpp (+1-1) 
- (modified) mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenEnv.cpp (+4-5) 
- (modified) mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.cpp (+19-20) 
- (modified) mlir/lib/Dialect/Utils/StaticValueUtils.cpp (+2-2) 
- (modified) mlir/lib/Pass/Pass.cpp (+1-1) 
- (modified) mlir/tools/mlir-tblgen/OpDocGen.cpp (+8-9) 


``````````diff
diff --git a/mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp b/mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
index 84556fbefbc9f..72a05ffe97ac0 100644
--- a/mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
+++ b/mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
@@ -497,8 +497,8 @@ coalesceTileLiveRanges(DenseMap<Value, LiveRange> &initialLiveRanges) {
 
   // Sort the new live ranges by starting point (ready for tile allocation).
   auto coalescedLiveRanges = uniqueLiveRanges.takeVector();
-  std::sort(coalescedLiveRanges.begin(), coalescedLiveRanges.end(),
-            [](LiveRange *a, LiveRange *b) { return *a < *b; });
+  llvm::sort(coalescedLiveRanges,
+             [](LiveRange *a, LiveRange *b) { return *a < *b; });
   return std::move(coalescedLiveRanges);
 }
 
@@ -824,8 +824,8 @@ LogicalResult mlir::arm_sme::allocateSMETiles(FunctionOpInterface function,
         [&](LiveRange const &liveRange) { return !liveRange.empty(); });
     auto initialRanges = llvm::to_vector(llvm::map_range(
         nonEmpty, [](LiveRange const &liveRange) { return &liveRange; }));
-    std::sort(initialRanges.begin(), initialRanges.end(),
-              [](LiveRange const *a, LiveRange const *b) { return *a < *b; });
+    llvm::sort(initialRanges,
+               [](LiveRange const *a, LiveRange const *b) { return *a < *b; });
     llvm::errs() << "\n========== Initial Live Ranges:\n";
     dumpLiveRanges(operationToIndexMap, initialRanges, function);
   }
diff --git a/mlir/lib/Dialect/Bufferization/IR/BufferDeallocationOpInterface.cpp b/mlir/lib/Dialect/Bufferization/IR/BufferDeallocationOpInterface.cpp
index 51dfd84d9ac60..eed7a56fff8af 100644
--- a/mlir/lib/Dialect/Bufferization/IR/BufferDeallocationOpInterface.cpp
+++ b/mlir/lib/Dialect/Bufferization/IR/BufferDeallocationOpInterface.cpp
@@ -177,8 +177,7 @@ void DeallocationState::getMemrefsToRetain(
   // liveOut has non-deterministic order because it was constructed by iterating
   // over a hash-set.
   SmallVector<Value> retainedByLiveness(liveOut.begin(), liveOut.end());
-  std::sort(retainedByLiveness.begin(), retainedByLiveness.end(),
-            ValueComparator());
+  llvm::sort(retainedByLiveness, ValueComparator());
   toRetain.append(retainedByLiveness);
 }
 
diff --git a/mlir/lib/Dialect/Linalg/Transforms/DecomposeGenericByUnfoldingPermutation.cpp b/mlir/lib/Dialect/Linalg/Transforms/DecomposeGenericByUnfoldingPermutation.cpp
index ae8cb94661c76..daeae2c9d947d 100644
--- a/mlir/lib/Dialect/Linalg/Transforms/DecomposeGenericByUnfoldingPermutation.cpp
+++ b/mlir/lib/Dialect/Linalg/Transforms/DecomposeGenericByUnfoldingPermutation.cpp
@@ -103,7 +103,7 @@ computeTransposeBroadcast(AffineMap &map) {
 
   // If dims are not monotonically increasing then transpose is present.
   SmallVector<int64_t> sortedResMap(minorResult);
-  std::sort(sortedResMap.begin(), sortedResMap.end());
+  llvm::sort(sortedResMap);
   bool hasTranspose = !std::equal(minorResult.begin(), minorResult.end(),
                                   sortedResMap.begin(), sortedResMap.end());
 
diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenEnv.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenEnv.cpp
index 86c13d03c7ec6..b94091cfa5f58 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenEnv.cpp
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenEnv.cpp
@@ -31,11 +31,10 @@ static bool isMaterializing(Value val) {
 /// Sorts the dependent loops such that it is ordered in the same sequence in
 /// which loops will be generated.
 static void sortDependentLoops(std::vector<LoopCoeffPair> &target) {
-  std::sort(target.begin(), target.end(),
-            [](const LoopCoeffPair &l, const LoopCoeffPair &r) {
-              assert(std::addressof(l) == std::addressof(r) || l != r);
-              return l.first < r.first;
-            });
+  llvm::sort(target, [](const LoopCoeffPair &l, const LoopCoeffPair &r) {
+    assert(std::addressof(l) == std::addressof(r) || l != r);
+    return l.first < r.first;
+  });
 }
 //===----------------------------------------------------------------------===//
 // Code generation environment constructor and general methods
diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.cpp
index ffa06bc0e2071..57291064eba22 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.cpp
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.cpp
@@ -459,26 +459,25 @@ void sparse_tensor::foreachInSparseConstant(
   }
 
   // Sorts the sparse element attribute based on coordinates.
-  std::sort(elems.begin(), elems.end(),
-            [order](const ElementAttr &lhs, const ElementAttr &rhs) {
-              if (std::addressof(lhs) == std::addressof(rhs))
-                return false;
-
-              auto lhsCoords = llvm::map_to_vector(
-                  lhs.first, [](IntegerAttr i) { return i.getInt(); });
-              auto rhsCoords = llvm::map_to_vector(
-                  rhs.first, [](IntegerAttr i) { return i.getInt(); });
-
-              SmallVector<int64_t, 4> lhsLvlCrds = order.compose(lhsCoords);
-              SmallVector<int64_t, 4> rhsLvlCrds = order.compose(rhsCoords);
-              // Sort the element based on the lvl coordinates.
-              for (Level l = 0; l < order.getNumResults(); l++) {
-                if (lhsLvlCrds[l] == rhsLvlCrds[l])
-                  continue;
-                return lhsLvlCrds[l] < rhsLvlCrds[l];
-              }
-              llvm_unreachable("no equal coordinate in sparse element attr");
-            });
+  llvm::sort(elems, [order](const ElementAttr &lhs, const ElementAttr &rhs) {
+    if (std::addressof(lhs) == std::addressof(rhs))
+      return false;
+
+    auto lhsCoords = llvm::map_to_vector(
+        lhs.first, [](IntegerAttr i) { return i.getInt(); });
+    auto rhsCoords = llvm::map_to_vector(
+        rhs.first, [](IntegerAttr i) { return i.getInt(); });
+
+    SmallVector<int64_t, 4> lhsLvlCrds = order.compose(lhsCoords);
+    SmallVector<int64_t, 4> rhsLvlCrds = order.compose(rhsCoords);
+    // Sort the element based on the lvl coordinates.
+    for (Level l = 0; l < order.getNumResults(); l++) {
+      if (lhsLvlCrds[l] == rhsLvlCrds[l])
+        continue;
+      return lhsLvlCrds[l] < rhsLvlCrds[l];
+    }
+    llvm_unreachable("no equal coordinate in sparse element attr");
+  });
 
   SmallVector<Value> cvs;
   cvs.reserve(dimRank);
diff --git a/mlir/lib/Dialect/Utils/StaticValueUtils.cpp b/mlir/lib/Dialect/Utils/StaticValueUtils.cpp
index fcb736aa031f3..fac836ebd7a36 100644
--- a/mlir/lib/Dialect/Utils/StaticValueUtils.cpp
+++ b/mlir/lib/Dialect/Utils/StaticValueUtils.cpp
@@ -237,8 +237,8 @@ getValuesSortedByKeyImpl(ArrayRef<K> keys, ArrayRef<V> values,
     return SmallVector<V>{values};
   assert(keys.size() == values.size() && "unexpected mismatching sizes");
   auto indices = llvm::to_vector(llvm::seq<int64_t>(0, values.size()));
-  std::sort(indices.begin(), indices.end(),
-            [&](int64_t i, int64_t j) { return compare(keys[i], keys[j]); });
+  llvm::sort(indices,
+             [&](int64_t i, int64_t j) { return compare(keys[i], keys[j]); });
   SmallVector<V> res;
   res.reserve(values.size());
   for (int64_t i = 0, e = indices.size(); i < e; ++i)
diff --git a/mlir/lib/Pass/Pass.cpp b/mlir/lib/Pass/Pass.cpp
index 8d1fbcdb19a9d..e0e9b5f54042a 100644
--- a/mlir/lib/Pass/Pass.cpp
+++ b/mlir/lib/Pass/Pass.cpp
@@ -689,7 +689,7 @@ LogicalResult OpToOpPassAdaptor::tryMergeInto(MLIRContext *ctx,
     }
     return false; // lhs(op-agnostic) > rhs(op-specific)
   };
-  std::sort(rhs.mgrs.begin(), rhs.mgrs.end(), compareFn);
+  llvm::sort(rhs.mgrs, compareFn);
   return success();
 }
 
diff --git a/mlir/tools/mlir-tblgen/OpDocGen.cpp b/mlir/tools/mlir-tblgen/OpDocGen.cpp
index 077f9d1ea2b13..f2b269e3a4542 100644
--- a/mlir/tools/mlir-tblgen/OpDocGen.cpp
+++ b/mlir/tools/mlir-tblgen/OpDocGen.cpp
@@ -583,15 +583,14 @@ static bool emitDialectDoc(const RecordKeeper &records, raw_ostream &os) {
   // sections.
   // TODO: The sorting order could be revised, currently attempting to sort of
   // keep in alphabetical order.
-  std::sort(dialectOps.begin(), dialectOps.end(),
-            [](const OpDocGroup &lhs, const OpDocGroup &rhs) {
-              auto getDesc = [](const OpDocGroup &arg) -> StringRef {
-                if (!arg.summary.empty())
-                  return arg.summary;
-                return arg.ops.front().getDef().getValueAsString("opName");
-              };
-              return getDesc(lhs).compare_insensitive(getDesc(rhs)) < 0;
-            });
+  llvm::sort(dialectOps, [](const OpDocGroup &lhs, const OpDocGroup &rhs) {
+    auto getDesc = [](const OpDocGroup &arg) -> StringRef {
+      if (!arg.summary.empty())
+        return arg.summary;
+      return arg.ops.front().getDef().getValueAsString("opName");
+    };
+    return getDesc(lhs).compare_insensitive(getDesc(rhs)) < 0;
+  });
 
   os << "<!-- Autogenerated by mlir-tblgen; don't manually edit -->\n";
   emitDialectDoc(*dialect, records.getInputFilename(), dialectAttrs,

``````````

</details>


https://github.com/llvm/llvm-project/pull/140261


More information about the Mlir-commits mailing list