MI Sched: revert a minor heuristic that snuck in with -misched-vcopy.
authorAndrew Trick <atrick@apple.com>
Tue, 30 Apr 2013 22:10:59 +0000 (22:10 +0000)
committerAndrew Trick <atrick@apple.com>
Tue, 30 Apr 2013 22:10:59 +0000 (22:10 +0000)
I'll fix the heuristic in a general way in a follow-up commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180815 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MachineScheduler.cpp

index 32aedbee94697f8e4edfcaa26495974cbc420337..fff6b2b4c062b873130bd7c2cdca5374e87aba77 100644 (file)
@@ -1990,9 +1990,15 @@ void ConvergingScheduler::tryCandidate(SchedCandidate &Cand,
     return;
 
   // Weak edges are for clustering and other constraints.
+  //
+  // Deferring TryCand here does not change Cand's reason. This is good in the
+  // sense that a bad candidate shouldn't affect a previous candidate's
+  // goodness, but bad in that it is assymetric and depends on queue order.
+  CandReason OrigReason = Cand.Reason;
   if (tryLess(getWeakLeft(TryCand.SU, Zone.isTop()),
               getWeakLeft(Cand.SU, Zone.isTop()),
               TryCand, Cand, Weak)) {
+    Cand.Reason = OrigReason;
     return;
   }
   // Avoid critical resource consumption and balance the schedule.