summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineScheduler.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2013-09-06 17:32:36 +0000
committerAndrew Trick <atrick@apple.com>2013-09-06 17:32:36 +0000
commitddffae90278b760e054fa44d77f7ff47f53a198a (patch)
treed49b4aa7d263eb9618d08731b753e5185bd0f2d8 /llvm/lib/CodeGen/MachineScheduler.cpp
parent75e411cc8ee1e4a3f46051b49e594cc46bd78c13 (diff)
downloadbcm5719-llvm-ddffae90278b760e054fa44d77f7ff47f53a198a.tar.gz
bcm5719-llvm-ddffae90278b760e054fa44d77f7ff47f53a198a.zip
mi-sched: Reorder Cyclicpath (latency) and CriticalMax (pressure) heuristics.
The latency based scheduling could induce spills in some cases. llvm-svn: 190177
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineScheduler.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp
index b854a13f0aa..7d957b5f302 100644
--- a/llvm/lib/CodeGen/MachineScheduler.cpp
+++ b/llvm/lib/CodeGen/MachineScheduler.cpp
@@ -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.
//
OpenPOWER on IntegriCloud