[llvm-branch-commits] [llvm] c14fa21 - Revert "Revert "[llvm][NFC] Use `llvm::sort()`" (#140668)"

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon May 19 20:36:16 PDT 2025


Author: Iris Shi
Date: 2025-05-20T11:36:14+08:00
New Revision: c14fa21e8308eaf964ddf9e3edaeae33c7519d69

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

LOG: Revert "Revert "[llvm][NFC] Use `llvm::sort()`" (#140668)"

This reverts commit bdf03fcff3a6bce810ccb4b007f542de09aef42d.

Added: 
    

Modified: 
    llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SeedCollector.h
    llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
    llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
    llvm/lib/DWARFLinker/Parallel/ArrayList.h
    llvm/lib/ExecutionEngine/Orc/Core.cpp
    llvm/lib/ExecutionEngine/Orc/Debugging/DebugInfoSupport.cpp
    llvm/lib/ProfileData/InstrProfReader.cpp
    llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
    llvm/lib/Target/AMDGPU/AMDGPUPreloadKernelArguments.cpp
    llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
    llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
    llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
    llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    llvm/lib/TargetParser/AArch64TargetParser.cpp
    llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
    llvm/lib/Transforms/Utils/CodeLayout.cpp
    llvm/tools/llvm-jitlink/llvm-jitlink.cpp
    llvm/utils/TableGen/ExegesisEmitter.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SeedCollector.h b/llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SeedCollector.h
index 9c1374719298b..273da3a87ee7c 100644
--- a/llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SeedCollector.h
+++ b/llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SeedCollector.h
@@ -141,11 +141,10 @@ template <typename LoadOrStoreT> class MemSeedBundle : public SeedBundle {
                   "Expected LoadInst or StoreInst!");
     assert(all_of(Seeds, [](auto *S) { return isa<LoadOrStoreT>(S); }) &&
            "Expected Load or Store instructions!");
-    auto Cmp = [&SE](Instruction *I0, Instruction *I1) {
+    llvm::sort(Seeds, [&SE](Instruction *I0, Instruction *I1) {
       return Utils::atLowerAddress(cast<LoadOrStoreT>(I0),
                                    cast<LoadOrStoreT>(I1), SE);
-    };
-    std::sort(Seeds.begin(), Seeds.end(), Cmp);
+    });
   }
   explicit MemSeedBundle(LoadOrStoreT *MemI) : SeedBundle(MemI) {
     static_assert(std::is_same<LoadOrStoreT, LoadInst>::value ||

diff  --git a/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp b/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
index ffdf08eec9963..8029fbcf66d39 100644
--- a/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
+++ b/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
@@ -2333,11 +2333,10 @@ static AssignmentTrackingLowering::OverlapMap buildOverlapMapAndRecordDeclares(
   // order of fragment size - there should be no duplicates.
   for (auto &Pair : FragmentMap) {
     SmallVector<DebugVariable, 8> &Frags = Pair.second;
-    std::sort(Frags.begin(), Frags.end(),
-              [](const DebugVariable &Next, const DebugVariable &Elmt) {
-                return Elmt.getFragmentOrDefault().SizeInBits >
-                       Next.getFragmentOrDefault().SizeInBits;
-              });
+    llvm::sort(Frags, [](const DebugVariable &Next, const DebugVariable &Elmt) {
+      return Elmt.getFragmentOrDefault().SizeInBits >
+             Next.getFragmentOrDefault().SizeInBits;
+    });
     // Check for duplicates.
     assert(std::adjacent_find(Frags.begin(), Frags.end()) == Frags.end());
   }

diff  --git a/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp b/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
index 1cde094d78e23..386daa5b9042a 100644
--- a/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
+++ b/llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
@@ -1056,9 +1056,9 @@ void llvm::extractInstructionFeatures(
   // frequency vector, mapping each instruction to its associated MBB.
 
   // Start off by sorting the segments based on the beginning slot index.
-  std::sort(
-      LRPosInfo.begin(), LRPosInfo.end(),
-      [](LRStartEndInfo A, LRStartEndInfo B) { return A.Begin < B.Begin; });
+  llvm::sort(LRPosInfo, [](LRStartEndInfo A, LRStartEndInfo B) {
+    return A.Begin < B.Begin;
+  });
   size_t InstructionIndex = 0;
   size_t CurrentSegmentIndex = 0;
   SlotIndex CurrentIndex = LRPosInfo[0].Begin;

diff  --git a/llvm/lib/DWARFLinker/Parallel/ArrayList.h b/llvm/lib/DWARFLinker/Parallel/ArrayList.h
index d99fdcc8c60c0..98d1fe0eb1b28 100644
--- a/llvm/lib/DWARFLinker/Parallel/ArrayList.h
+++ b/llvm/lib/DWARFLinker/Parallel/ArrayList.h
@@ -82,7 +82,7 @@ template <typename T, size_t ItemsGroupSize = 512> class ArrayList {
     forEach([&](T &Item) { SortedItems.push_back(Item); });
 
     if (SortedItems.size()) {
-      std::sort(SortedItems.begin(), SortedItems.end(), Comparator);
+      llvm::sort(SortedItems, Comparator);
 
       size_t SortedItemIdx = 0;
       forEach([&](T &Item) { Item = SortedItems[SortedItemIdx++]; });

diff  --git a/llvm/lib/ExecutionEngine/Orc/Core.cpp b/llvm/lib/ExecutionEngine/Orc/Core.cpp
index cbed057950aea..66fca7cf74bdd 100644
--- a/llvm/lib/ExecutionEngine/Orc/Core.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/Core.cpp
@@ -1142,8 +1142,9 @@ void JITDylib::dump(raw_ostream &OS) {
     std::vector<std::pair<SymbolStringPtr, SymbolTableEntry *>> SymbolsSorted;
     for (auto &KV : Symbols)
       SymbolsSorted.emplace_back(KV.first, &KV.second);
-    std::sort(SymbolsSorted.begin(), SymbolsSorted.end(),
-              [](const auto &L, const auto &R) { return *L.first < *R.first; });
+    llvm::sort(SymbolsSorted, [](const auto &L, const auto &R) {
+      return *L.first < *R.first;
+    });
 
     for (auto &KV : SymbolsSorted) {
       OS << "    \"" << *KV.first << "\": ";

diff  --git a/llvm/lib/ExecutionEngine/Orc/Debugging/DebugInfoSupport.cpp b/llvm/lib/ExecutionEngine/Orc/Debugging/DebugInfoSupport.cpp
index 9b842180fa7a7..3b68d55b089a6 100644
--- a/llvm/lib/ExecutionEngine/Orc/Debugging/DebugInfoSupport.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/Debugging/DebugInfoSupport.cpp
@@ -49,7 +49,7 @@ static void preserveDWARFSection(LinkGraph &G, Section &Sec) {
 static SmallVector<char, 0> getSectionData(Section &Sec) {
   SmallVector<char, 0> SecData;
   SmallVector<Block *, 8> SecBlocks(Sec.blocks().begin(), Sec.blocks().end());
-  std::sort(SecBlocks.begin(), SecBlocks.end(), [](Block *LHS, Block *RHS) {
+  llvm::sort(SecBlocks, [](Block *LHS, Block *RHS) {
     return LHS->getAddress() < RHS->getAddress();
   });
   // Convert back to what object file would have, one blob of section content

diff  --git a/llvm/lib/ProfileData/InstrProfReader.cpp b/llvm/lib/ProfileData/InstrProfReader.cpp
index a1eb08362087f..7518f46bd2347 100644
--- a/llvm/lib/ProfileData/InstrProfReader.cpp
+++ b/llvm/lib/ProfileData/InstrProfReader.cpp
@@ -488,7 +488,7 @@ RawInstrProfReader<IntPtrT>::getTemporalProfTraces(
     return TemporalProfTraces;
   }
   // Sort functions by their timestamps to build the trace.
-  std::sort(TemporalProfTimestamps.begin(), TemporalProfTimestamps.end());
+  llvm::sort(TemporalProfTimestamps);
   TemporalProfTraceTy Trace;
   if (Weight)
     Trace.Weight = *Weight;

diff  --git a/llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp b/llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
index dbe74b1b08f8c..0b5868fc4873f 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
@@ -589,7 +589,7 @@ void PipelineSolver::populateReadyList(
   }
 
   if (UseCostHeur)
-    std::sort(ReadyList.begin(), ReadyList.end(), llvm::less_second());
+    llvm::sort(ReadyList, llvm::less_second());
 
   assert(ReadyList.size() == CurrSU.second.size());
 }

diff  --git a/llvm/lib/Target/AMDGPU/AMDGPUPreloadKernelArguments.cpp b/llvm/lib/Target/AMDGPU/AMDGPUPreloadKernelArguments.cpp
index 5027705ef61de..d0bea0585c241 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUPreloadKernelArguments.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUPreloadKernelArguments.cpp
@@ -224,7 +224,7 @@ class PreloadKernelArgInfo {
 
     // Allocate loads in order of offset. We need to be sure that the implicit
     // argument can actually be preloaded.
-    std::sort(ImplicitArgLoads.begin(), ImplicitArgLoads.end(), less_second());
+    llvm::sort(ImplicitArgLoads, less_second());
 
     // If we fail to preload any implicit argument we know we don't have SGPRs
     // to preload any subsequent ones with larger offsets. Find the first

diff  --git a/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp b/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
index 69bc84a6733c0..e83ae43a325e5 100644
--- a/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
+++ b/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
@@ -6844,8 +6844,8 @@ bool ARMPipelinerLoopInfo::tooMuchRegisterPressure(SwingSchedulerDAG &SSD,
          ++Stage) {
       std::deque<SUnit *> Instrs =
           SMS.getInstructions(Cycle + Stage * SMS.getInitiationInterval());
-      std::sort(Instrs.begin(), Instrs.end(),
-                [](SUnit *A, SUnit *B) { return A->NodeNum > B->NodeNum; });
+      llvm::sort(Instrs,
+                 [](SUnit *A, SUnit *B) { return A->NodeNum > B->NodeNum; });
       llvm::append_range(ProposedSchedule, Instrs);
     }
 

diff  --git a/llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp b/llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
index e6cb8cee66a60..27c37339d6703 100644
--- a/llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
@@ -106,7 +106,7 @@ bool SPIRVExtensionsParser::parse(cl::Option &O, StringRef ArgName,
                                   std::set<SPIRV::Extension::Extension> &Vals) {
   SmallVector<StringRef, 10> Tokens;
   ArgValue.split(Tokens, ",", -1, false);
-  std::sort(Tokens.begin(), Tokens.end());
+  llvm::sort(Tokens);
 
   std::set<SPIRV::Extension::Extension> EnabledExtensions;
 

diff  --git a/llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp b/llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
index 68448acf45c3c..5d18729363ec2 100644
--- a/llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
@@ -660,14 +660,14 @@ class SPIRVStructurizer : public FunctionPass {
     Instruction *InsertionPoint = *MergeInstructions.begin();
 
     PartialOrderingVisitor Visitor(F);
-    std::sort(MergeInstructions.begin(), MergeInstructions.end(),
-              [&Visitor](Instruction *Left, Instruction *Right) {
-                if (Left == Right)
-                  return false;
-                BasicBlock *RightMerge = getDesignatedMergeBlock(Right);
-                BasicBlock *LeftMerge = getDesignatedMergeBlock(Left);
-                return !Visitor.compare(RightMerge, LeftMerge);
-              });
+    llvm::sort(MergeInstructions,
+               [&Visitor](Instruction *Left, Instruction *Right) {
+                 if (Left == Right)
+                   return false;
+                 BasicBlock *RightMerge = getDesignatedMergeBlock(Right);
+                 BasicBlock *LeftMerge = getDesignatedMergeBlock(Left);
+                 return !Visitor.compare(RightMerge, LeftMerge);
+               });
 
     for (Instruction *I : MergeInstructions) {
       I->moveBefore(InsertionPoint->getIterator());

diff  --git a/llvm/lib/Target/SPIRV/SPIRVUtils.cpp b/llvm/lib/Target/SPIRV/SPIRVUtils.cpp
index f38794afab436..48bacaa2d5c47 100644
--- a/llvm/lib/Target/SPIRV/SPIRVUtils.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVUtils.cpp
@@ -662,7 +662,7 @@ PartialOrderingVisitor::PartialOrderingVisitor(Function &F) {
   for (auto &[BB, Info] : BlockToOrder)
     Order.emplace_back(BB);
 
-  std::sort(Order.begin(), Order.end(), [&](const auto &LHS, const auto &RHS) {
+  llvm::sort(Order, [&](const auto &LHS, const auto &RHS) {
     return compare(LHS, RHS);
   });
 }

diff  --git a/llvm/lib/TargetParser/AArch64TargetParser.cpp b/llvm/lib/TargetParser/AArch64TargetParser.cpp
index e13c6e6d28c2b..04da2f3e9acbb 100644
--- a/llvm/lib/TargetParser/AArch64TargetParser.cpp
+++ b/llvm/lib/TargetParser/AArch64TargetParser.cpp
@@ -227,10 +227,10 @@ AArch64::printEnabledExtensions(const std::set<StringRef> &EnabledFeatureNames)
       EnabledExtensionsInfo.push_back(*ExtInfo);
   }
 
-  std::sort(EnabledExtensionsInfo.begin(), EnabledExtensionsInfo.end(),
-            [](const ExtensionInfo &Lhs, const ExtensionInfo &Rhs) {
-              return Lhs.ArchFeatureName < Rhs.ArchFeatureName;
-            });
+  llvm::sort(EnabledExtensionsInfo,
+             [](const ExtensionInfo &Lhs, const ExtensionInfo &Rhs) {
+               return Lhs.ArchFeatureName < Rhs.ArchFeatureName;
+             });
 
   for (const auto &Ext : EnabledExtensionsInfo) {
     outs() << "    "

diff  --git a/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp b/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
index 5b4350845b726..37121faecc779 100644
--- a/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
+++ b/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
@@ -2945,7 +2945,7 @@ void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode::print(
   // Make a copy of the computed context ids that we can sort for stability.
   auto ContextIds = getContextIds();
   std::vector<uint32_t> SortedIds(ContextIds.begin(), ContextIds.end());
-  std::sort(SortedIds.begin(), SortedIds.end());
+  llvm::sort(SortedIds);
   for (auto Id : SortedIds)
     OS << " " << Id;
   OS << "\n";
@@ -2977,7 +2977,7 @@ void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextEdge::print(
      << " AllocTypes: " << getAllocTypeString(AllocTypes);
   OS << " ContextIds:";
   std::vector<uint32_t> SortedIds(ContextIds.begin(), ContextIds.end());
-  std::sort(SortedIds.begin(), SortedIds.end());
+  llvm::sort(SortedIds);
   for (auto Id : SortedIds)
     OS << " " << Id;
 }
@@ -3012,7 +3012,7 @@ void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::printTotalSizes(
     DenseSet<uint32_t> ContextIds = Node->getContextIds();
     auto AllocTypeFromCall = getAllocationCallType(Node->Call);
     std::vector<uint32_t> SortedIds(ContextIds.begin(), ContextIds.end());
-    std::sort(SortedIds.begin(), SortedIds.end());
+    llvm::sort(SortedIds);
     for (auto Id : SortedIds) {
       auto TypeI = ContextIdToAllocationType.find(Id);
       assert(TypeI != ContextIdToAllocationType.end());
@@ -3211,7 +3211,7 @@ struct DOTGraphTraits<const CallsiteContextGraph<DerivedCCG, FuncTy, CallTy> *>
     std::string IdString = "ContextIds:";
     if (ContextIds.size() < 100) {
       std::vector<uint32_t> SortedIds(ContextIds.begin(), ContextIds.end());
-      std::sort(SortedIds.begin(), SortedIds.end());
+      llvm::sort(SortedIds);
       for (auto Id : SortedIds)
         IdString += (" " + Twine(Id)).str();
     } else {

diff  --git a/llvm/lib/Transforms/Utils/CodeLayout.cpp b/llvm/lib/Transforms/Utils/CodeLayout.cpp
index c76b3afef50c2..d5ddd20ee45a1 100644
--- a/llvm/lib/Transforms/Utils/CodeLayout.cpp
+++ b/llvm/lib/Transforms/Utils/CodeLayout.cpp
@@ -986,16 +986,15 @@ class ExtTSPImpl {
     }
 
     // Sorting chains by density in the decreasing order.
-    std::sort(SortedChains.begin(), SortedChains.end(),
-              [&](const ChainT *L, const ChainT *R) {
-                // Place the entry point at the beginning of the order.
-                if (L->isEntry() != R->isEntry())
-                  return L->isEntry();
-
-                // Compare by density and break ties by chain identifiers.
-                return std::make_tuple(-L->density(), L->Id) <
-                       std::make_tuple(-R->density(), R->Id);
-              });
+    llvm::sort(SortedChains, [&](const ChainT *L, const ChainT *R) {
+      // Place the entry point at the beginning of the order.
+      if (L->isEntry() != R->isEntry())
+        return L->isEntry();
+
+      // Compare by density and break ties by chain identifiers.
+      return std::make_tuple(-L->density(), L->Id) <
+             std::make_tuple(-R->density(), R->Id);
+    });
 
     // Collect the nodes in the order specified by their chains.
     std::vector<uint64_t> Order;
@@ -1355,14 +1354,12 @@ class CDSortImpl {
     }
 
     // Sort chains by density in the decreasing order.
-    std::sort(SortedChains.begin(), SortedChains.end(),
-              [&](const ChainT *L, const ChainT *R) {
-                const double DL = ChainDensity[L];
-                const double DR = ChainDensity[R];
-                // Compare by density and break ties by chain identifiers.
-                return std::make_tuple(-DL, L->Id) <
-                       std::make_tuple(-DR, R->Id);
-              });
+    llvm::sort(SortedChains, [&](const ChainT *L, const ChainT *R) {
+      const double DL = ChainDensity[L];
+      const double DR = ChainDensity[R];
+      // Compare by density and break ties by chain identifiers.
+      return std::make_tuple(-DL, L->Id) < std::make_tuple(-DR, R->Id);
+    });
 
     // Collect the nodes in the order specified by their chains.
     std::vector<uint64_t> Order;

diff  --git a/llvm/tools/llvm-jitlink/llvm-jitlink.cpp b/llvm/tools/llvm-jitlink/llvm-jitlink.cpp
index ab2f685b4fc1d..2e98f44f51592 100644
--- a/llvm/tools/llvm-jitlink/llvm-jitlink.cpp
+++ b/llvm/tools/llvm-jitlink/llvm-jitlink.cpp
@@ -1459,10 +1459,9 @@ Error Session::FileInfo::registerMultiStubEntry(
                      Sym.getTargetFlags());
 
   // Let's keep stubs ordered by ascending address.
-  std::sort(Entry.begin(), Entry.end(),
-            [](const MemoryRegionInfo &L, const MemoryRegionInfo &R) {
-              return L.getTargetAddress() < R.getTargetAddress();
-            });
+  llvm::sort(Entry, [](const MemoryRegionInfo &L, const MemoryRegionInfo &R) {
+    return L.getTargetAddress() < R.getTargetAddress();
+  });
 
   return Error::success();
 }

diff  --git a/llvm/utils/TableGen/ExegesisEmitter.cpp b/llvm/utils/TableGen/ExegesisEmitter.cpp
index 1b4b0729a5fcc..30cac66786e4f 100644
--- a/llvm/utils/TableGen/ExegesisEmitter.cpp
+++ b/llvm/utils/TableGen/ExegesisEmitter.cpp
@@ -141,8 +141,7 @@ void ExegesisEmitter::emitPfmCountersInfo(const Record &Def,
            ValidationCounter->getValueAsDef("EventType")->getName(),
            getPfmCounterId(ValidationCounter->getValueAsString("Counter"))});
     }
-    std::sort(ValidationCounters.begin(), ValidationCounters.end(),
-              EventNumberLess);
+    llvm::sort(ValidationCounters, EventNumberLess);
     OS << "\nstatic const std::pair<ValidationEvent, const char*> " << Target
        << Def.getName() << "ValidationCounters[] = {\n";
     for (const ValidationCounterInfo &VCI : ValidationCounters) {


        


More information about the llvm-branch-commits mailing list