[llvm] r190177 - mi-sched: Reorder Cyclicpath (latency) and CriticalMax (pressure) heuristics.
Andrew Trick
atrick at apple.com
Fri Sep 6 10:32:37 PDT 2013
Author: atrick
Date: Fri Sep 6 12:32:36 2013
New Revision: 190177
URL: http://llvm.org/viewvc/llvm-project?rev=190177&view=rev
Log:
mi-sched: Reorder Cyclicpath (latency) and CriticalMax (pressure) heuristics.
The latency based scheduling could induce spills in some cases.
Modified:
llvm/trunk/lib/CodeGen/MachineScheduler.cpp
Modified: llvm/trunk/lib/CodeGen/MachineScheduler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineScheduler.cpp?rev=190177&r1=190176&r2=190177&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MachineScheduler.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineScheduler.cpp Fri Sep 6 12:32:36 2013
@@ -2469,16 +2469,16 @@ void ConvergingScheduler::tryCandidate(S
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.
//
More information about the llvm-commits
mailing list