]> granicus.if.org Git - llvm/commitdiff
[ExecutionDomainFix] Optimize a binary search insertion
authorFangrui Song <maskray@google.com>
Sat, 20 Apr 2019 13:00:50 +0000 (13:00 +0000)
committerFangrui Song <maskray@google.com>
Sat, 20 Apr 2019 13:00:50 +0000 (13:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358815 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/ExecutionDomainFix.cpp

index fed9278141f38473f1b985b1c9b68961e0ba14c0..c350ede635db2bd49e3dd9a3145310462b78809f 100644 (file)
@@ -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);
   }