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) { _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits