<div dir="ltr">The patch is intended to be a cleanup.  Specifically, I'm trying to reduce repeated mentions of container names to improve readability, much like std::ranges::find of C++20 would.<div><br></div><div>I'm not sure the std:: version is preferred.  Maybe we will prefer std::ranges::find to llvm::find when we can use C++20 in the llvm source code, but that will be a few years from now.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 19, 2021 at 8:38 PM Tom Stellard <<a href="mailto:tstellar@redhat.com">tstellar@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 1/19/21 8:19 PM, Kazu Hirata via llvm-commits wrote:<br>
> <br>
> Author: Kazu Hirata<br>
> Date: 2021-01-19T20:19:14-08:00<br>
> New Revision: 885720248921324d28b983248dcc4056fd994a0f<br>
> <br>
> URL: <a href="https://github.com/llvm/llvm-project/commit/885720248921324d28b983248dcc4056fd994a0f" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/885720248921324d28b983248dcc4056fd994a0f</a><br>
> DIFF: <a href="https://github.com/llvm/llvm-project/commit/885720248921324d28b983248dcc4056fd994a0f.diff" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/885720248921324d28b983248dcc4056fd994a0f.diff</a><br>
> <br>
> LOG: [llvm] Use llvm::find (NFC)<br>
> <br>
<br>
What is the purpose of this change?  Aren't the std:: versions preferred?<br>
<br>
-Tom<br>
<br>
> Added:<br>
>      <br>
> <br>
> Modified:<br>
>      llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp<br>
>      llvm/lib/MCA/Stages/InstructionTables.cpp<br>
>      llvm/lib/Support/DynamicLibrary.cpp<br>
>      llvm/lib/Target/Hexagon/HexagonSubtarget.cpp<br>
>      llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp<br>
>      llvm/lib/Transforms/Scalar/GuardWidening.cpp<br>
>      llvm/lib/Transforms/Vectorize/VPlan.h<br>
>      llvm/utils/TableGen/GlobalISel/GIMatchTree.cpp<br>
>      llvm/utils/TableGen/SubtargetEmitter.cpp<br>
> <br>
> Removed:<br>
>      <br>
> <br>
> <br>
> ################################################################################<br>
> diff  --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp<br>
> index ef83df8bdd96..1bee1421cac0 100644<br>
> --- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp<br>
> +++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp<br>
> @@ -18957,8 +18957,7 @@ SDValue DAGCombiner::reduceBuildVecToShuffle(SDNode *N) {<br>
>       // Have we seen this input vector before?<br>
>       // The vectors are expected to be tiny (usually 1 or 2 elements), so using<br>
>       // a map back from SDValues to numbers isn't worth it.<br>
> -    unsigned Idx = std::distance(<br>
> -        VecIn.begin(), std::find(VecIn.begin(), VecIn.end(), ExtractedFromVec));<br>
> +    unsigned Idx = std::distance(VecIn.begin(), find(VecIn, ExtractedFromVec));<br>
>       if (Idx == VecIn.size())<br>
>         VecIn.push_back(ExtractedFromVec);<br>
>   <br>
> <br>
> diff  --git a/llvm/lib/MCA/Stages/InstructionTables.cpp b/llvm/lib/MCA/Stages/InstructionTables.cpp<br>
> index a0cdfb89c553..93e368123066 100644<br>
> --- a/llvm/lib/MCA/Stages/InstructionTables.cpp<br>
> +++ b/llvm/lib/MCA/Stages/InstructionTables.cpp<br>
> @@ -30,8 +30,7 @@ Error InstructionTables::execute(InstRef &IR) {<br>
>       if (!Resource.second.size())<br>
>         continue;<br>
>       unsigned Cycles = Resource.second.size();<br>
> -    unsigned Index = std::distance(<br>
> -        Masks.begin(), std::find(Masks.begin(), Masks.end(), Resource.first));<br>
> +    unsigned Index = std::distance(Masks.begin(), find(Masks, Resource.first));<br>
>       const MCProcResourceDesc &ProcResource = *SM.getProcResource(Index);<br>
>       unsigned NumUnits = ProcResource.NumUnits;<br>
>       if (!ProcResource.SubUnitsIdxBegin) {<br>
> <br>
> diff  --git a/llvm/lib/Support/DynamicLibrary.cpp b/llvm/lib/Support/DynamicLibrary.cpp<br>
> index d23716016fb2..bdf74623670b 100644<br>
> --- a/llvm/lib/Support/DynamicLibrary.cpp<br>
> +++ b/llvm/lib/Support/DynamicLibrary.cpp<br>
> @@ -39,9 +39,7 @@ class DynamicLibrary::HandleSet {<br>
>     HandleSet() : Process(nullptr) {}<br>
>     ~HandleSet();<br>
>   <br>
> -  HandleList::iterator Find(void *Handle) {<br>
> -    return std::find(Handles.begin(), Handles.end(), Handle);<br>
> -  }<br>
> +  HandleList::iterator Find(void *Handle) { return find(Handles, Handle); }<br>
>   <br>
>     bool Contains(void *Handle) {<br>
>       return Handle == Process || Find(Handle) != Handles.end();<br>
> <br>
> diff  --git a/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp b/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp<br>
> index fed1abb9549b..87b1c43961d7 100644<br>
> --- a/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp<br>
> +++ b/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp<br>
> @@ -527,7 +527,7 @@ void HexagonSubtarget::restoreLatency(SUnit *Src, SUnit *Dst) const {<br>
>   <br>
>       // Update the latency of opposite edge too.<br>
>       T.setSUnit(Src);<br>
> -    auto F = std::find(Dst->Preds.begin(), Dst->Preds.end(), T);<br>
> +    auto F = find(Dst->Preds, T);<br>
>       assert(F != Dst->Preds.end());<br>
>       F->setLatency(I.getLatency());<br>
>     }<br>
> @@ -544,7 +544,7 @@ void HexagonSubtarget::changeLatency(SUnit *Src, SUnit *Dst, unsigned Lat)<br>
>   <br>
>       // Update the latency of opposite edge too.<br>
>       T.setSUnit(Src);<br>
> -    auto F = std::find(Dst->Preds.begin(), Dst->Preds.end(), T);<br>
> +    auto F = find(Dst->Preds, T);<br>
>       assert(F != Dst->Preds.end());<br>
>       F->setLatency(Lat);<br>
>     }<br>
> <br>
> diff  --git a/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp b/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp<br>
> index 90cc81beb89d..5cee00c61fc1 100644<br>
> --- a/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp<br>
> +++ b/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp<br>
> @@ -206,9 +206,9 @@ static bool splitMBB(BlockSplitInfo &BSI) {<br>
>     NewMBB->splice(NewMBB->end(), ThisMBB, InsertPoint, ThisMBB->end());<br>
>     NewMBB->transferSuccessors(ThisMBB);<br>
>     if (!ProbOrigTarget.isUnknown()) {<br>
> -    auto MBBI = std::find(NewMBB->succ_begin(), NewMBB->succ_end(), OrigTarget);<br>
> +    auto MBBI = find(NewMBB->successors(), OrigTarget);<br>
>       NewMBB->setSuccProbability(MBBI, ProbOrigTarget);<br>
> -    MBBI = std::find(NewMBB->succ_begin(), NewMBB->succ_end(), OrigFallThrough);<br>
> +    MBBI = find(NewMBB->successors(), OrigFallThrough);<br>
>       NewMBB->setSuccProbability(MBBI, ProbOrigFallThrough);<br>
>     }<br>
>   <br>
> <br>
> diff  --git a/llvm/lib/Transforms/Scalar/GuardWidening.cpp b/llvm/lib/Transforms/Scalar/GuardWidening.cpp<br>
> index 1735266f0e58..6ce79bdb7076 100644<br>
> --- a/llvm/lib/Transforms/Scalar/GuardWidening.cpp<br>
> +++ b/llvm/lib/Transforms/Scalar/GuardWidening.cpp<br>
> @@ -347,9 +347,8 @@ bool GuardWideningImpl::eliminateInstrViaWidening(<br>
>       const auto &GuardsInCurBB = GuardsInBlock.find(CurBB)->second;<br>
>   <br>
>       auto I = GuardsInCurBB.begin();<br>
> -    auto E = Instr->getParent() == CurBB<br>
> -                 ? std::find(GuardsInCurBB.begin(), GuardsInCurBB.end(), Instr)<br>
> -                 : GuardsInCurBB.end();<br>
> +    auto E = Instr->getParent() == CurBB ? find(GuardsInCurBB, Instr)<br>
> +                                         : GuardsInCurBB.end();<br>
>   <br>
>   #ifndef NDEBUG<br>
>       {<br>
> <br>
> diff  --git a/llvm/lib/Transforms/Vectorize/VPlan.h b/llvm/lib/Transforms/Vectorize/VPlan.h<br>
> index 4500e761a6e1..8d907dbc857d 100644<br>
> --- a/llvm/lib/Transforms/Vectorize/VPlan.h<br>
> +++ b/llvm/lib/Transforms/Vectorize/VPlan.h<br>
> @@ -413,14 +413,14 @@ class VPBlockBase {<br>
>   <br>
>     /// Remove \p Predecessor from the predecessors of this block.<br>
>     void removePredecessor(VPBlockBase *Predecessor) {<br>
> -    auto Pos = std::find(Predecessors.begin(), Predecessors.end(), Predecessor);<br>
> +    auto Pos = find(Predecessors, Predecessor);<br>
>       assert(Pos && "Predecessor does not exist");<br>
>       Predecessors.erase(Pos);<br>
>     }<br>
>   <br>
>     /// Remove \p Successor from the successors of this block.<br>
>     void removeSuccessor(VPBlockBase *Successor) {<br>
> -    auto Pos = std::find(Successors.begin(), Successors.end(), Successor);<br>
> +    auto Pos = find(Successors, Successor);<br>
>       assert(Pos && "Successor does not exist");<br>
>       Successors.erase(Pos);<br>
>     }<br>
> <br>
> diff  --git a/llvm/utils/TableGen/GlobalISel/GIMatchTree.cpp b/llvm/utils/TableGen/GlobalISel/GIMatchTree.cpp<br>
> index b7155398bd30..a67f1de67ed7 100644<br>
> --- a/llvm/utils/TableGen/GlobalISel/GIMatchTree.cpp<br>
> +++ b/llvm/utils/TableGen/GlobalISel/GIMatchTree.cpp<br>
> @@ -121,8 +121,7 @@ void GIMatchTreeBuilderLeafInfo::declareInstr(const GIMatchDagInstr *Instr, unsi<br>
>       Info.bindOperandVariable(VarBinding.second, ID, VarBinding.first);<br>
>   <br>
>     // Clear the bit indicating we haven't visited this instr.<br>
> -  const auto &NodeI = std::find(MatchDag.instr_nodes_begin(),<br>
> -                            MatchDag.instr_nodes_end(), Instr);<br>
> +  const auto &NodeI = find(MatchDag.instr_nodes(), Instr);<br>
>     assert(NodeI != MatchDag.instr_nodes_end() && "Instr isn't in this DAG");<br>
>     unsigned InstrIdx = MatchDag.getInstrNodeIdx(NodeI);<br>
>     RemainingInstrNodes.reset(InstrIdx);<br>
> <br>
> diff  --git a/llvm/utils/TableGen/SubtargetEmitter.cpp b/llvm/utils/TableGen/SubtargetEmitter.cpp<br>
> index bd40d0e83dec..7d2b4b929df3 100644<br>
> --- a/llvm/utils/TableGen/SubtargetEmitter.cpp<br>
> +++ b/llvm/utils/TableGen/SubtargetEmitter.cpp<br>
> @@ -730,10 +730,8 @@ void SubtargetEmitter::EmitLoadStoreQueueInfo(const CodeGenProcModel &ProcModel,<br>
>     unsigned QueueID = 0;<br>
>     if (ProcModel.LoadQueue) {<br>
>       const Record *Queue = ProcModel.LoadQueue->getValueAsDef("QueueDescriptor");<br>
> -    QueueID =<br>
> -        1 + std::distance(ProcModel.ProcResourceDefs.begin(),<br>
> -                          std::find(ProcModel.ProcResourceDefs.begin(),<br>
> -                                    ProcModel.ProcResourceDefs.end(), Queue));<br>
> +    QueueID = 1 + std::distance(ProcModel.ProcResourceDefs.begin(),<br>
> +                                find(ProcModel.ProcResourceDefs, Queue));<br>
>     }<br>
>     OS << "  " << QueueID << ", // Resource Descriptor for the Load Queue\n";<br>
>   <br>
> @@ -741,10 +739,8 @@ void SubtargetEmitter::EmitLoadStoreQueueInfo(const CodeGenProcModel &ProcModel,<br>
>     if (ProcModel.StoreQueue) {<br>
>       const Record *Queue =<br>
>           ProcModel.StoreQueue->getValueAsDef("QueueDescriptor");<br>
> -    QueueID =<br>
> -        1 + std::distance(ProcModel.ProcResourceDefs.begin(),<br>
> -                          std::find(ProcModel.ProcResourceDefs.begin(),<br>
> -                                    ProcModel.ProcResourceDefs.end(), Queue));<br>
> +    QueueID = 1 + std::distance(ProcModel.ProcResourceDefs.begin(),<br>
> +                                find(ProcModel.ProcResourceDefs, Queue));<br>
>     }<br>
>     OS << "  " << QueueID << ", // Resource Descriptor for the Store Queue\n";<br>
>   }<br>
> <br>
> <br>
>          <br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
> <br>
<br>
</blockquote></div>