From: Fangrui Song Date: Sat, 20 Apr 2019 13:00:50 +0000 (+0000) Subject: [ExecutionDomainFix] Optimize a binary search insertion X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a1443772d6c1a4b3892e311e7d2ab48b4ad658b3;p=llvm [ExecutionDomainFix] Optimize a binary search insertion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358815 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/ExecutionDomainFix.cpp b/lib/CodeGen/ExecutionDomainFix.cpp index fed9278141f..c350ede635d 100644 --- a/lib/CodeGen/ExecutionDomainFix.cpp +++ b/lib/CodeGen/ExecutionDomainFix.cpp @@ -336,9 +336,9 @@ void ExecutionDomainFix::visitSoftInstr(MachineInstr *mi, unsigned mask) { } // Sorted insertion. // Enables giving priority to the latest domains during merging. - auto I = llvm::upper_bound(Regs, rx, [&](int LHS, const int RHS) { - return RDA->getReachingDef(mi, RC->getRegister(LHS)) < - RDA->getReachingDef(mi, RC->getRegister(RHS)); + const int Def = RDA->getReachingDef(mi, RC->getRegister(rx)); + auto I = llvm::bsearch(Regs, [&](int I) { + return Def < RDA->getReachingDef(mi, RC->getRegister(I)); }); Regs.insert(I, rx); }