mi-sched: Reorder Cyclicpath (latency) and CriticalMax (pressure) heuristics.

The latency based scheduling could induce spills in some cases.

llvm-svn: 190177
This commit is contained in:
Andrew Trick 2013-09-06 17:32:36 +00:00
parent 75e411cc8e
commit ddffae9027
1 changed files with 4 additions and 4 deletions

View File

@ -2469,16 +2469,16 @@ void ConvergingScheduler::tryCandidate(SchedCandidate &Cand,
TryCand, Cand, RegExcess))
return;
// For loops that are acyclic path limited, aggressively schedule for latency.
if (Rem.IsAcyclicLatencyLimited && tryLatency(TryCand, Cand, Zone))
return;
// Avoid increasing the max critical pressure in the scheduled region.
if (DAG->isTrackingPressure() && tryPressure(TryCand.RPDelta.CriticalMax,
Cand.RPDelta.CriticalMax,
TryCand, Cand, RegCritical))
return;
// For loops that are acyclic path limited, aggressively schedule for latency.
if (Rem.IsAcyclicLatencyLimited && tryLatency(TryCand, Cand, Zone))
return;
// Keep clustered nodes together to encourage downstream peephole
// optimizations which may reduce resource requirements.
//