diff options
-rw-r--r-- | llvm/include/llvm/CodeGen/MachineScheduler.h | 8 | ||||
-rw-r--r-- | llvm/lib/CodeGen/MachineScheduler.cpp | 11 |
2 files changed, 0 insertions, 19 deletions
diff --git a/llvm/include/llvm/CodeGen/MachineScheduler.h b/llvm/include/llvm/CodeGen/MachineScheduler.h index 741a5299a90..25a6105b689 100644 --- a/llvm/include/llvm/CodeGen/MachineScheduler.h +++ b/llvm/include/llvm/CodeGen/MachineScheduler.h @@ -589,10 +589,6 @@ private: /// instruction. bool CheckPending; - // For heuristics, keep a list of the nodes that immediately depend on the - // most recently scheduled node. - SmallPtrSet<const SUnit*, 8> NextSUs; - /// Number of cycles it takes to issue the instructions scheduled in this /// zone. It is defined as: scheduled-micro-ops / issue-width + stalls. /// See getStalls(). @@ -669,10 +665,6 @@ public: /// Micro-ops issued in the current cycle unsigned getCurrMOps() const { return CurrMOps; } - /// Return true if the given SU is used by the most recently scheduled - /// instruction. - bool isNextSU(const SUnit *SU) const { return NextSUs.count(SU); } - // The latency of dependence chains leading into this zone. unsigned getDependentLatency() const { return DependentLatency; } diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp index fae22eb9b25..bc1c97d7466 100644 --- a/llvm/lib/CodeGen/MachineScheduler.cpp +++ b/llvm/lib/CodeGen/MachineScheduler.cpp @@ -1793,7 +1793,6 @@ void SchedBoundary::reset() { Available.clear(); Pending.clear(); CheckPending = false; - NextSUs.clear(); CurrCycle = 0; CurrMOps = 0; MinReadyCycle = UINT_MAX; @@ -1994,9 +1993,6 @@ void SchedBoundary::releaseNode(SUnit *SU, unsigned ReadyCycle) { Pending.push(SU); else Available.push(SU); - - // Record this node as an immediate dependent of the scheduled node. - NextSUs.insert(SU); } void SchedBoundary::releaseTopNode(SUnit *SU) { @@ -2921,13 +2917,6 @@ void GenericScheduler::tryCandidate(SchedCandidate &Cand, !Rem.IsAcyclicLatencyLimited && tryLatency(TryCand, Cand, *Zone)) return; - // Prefer immediate defs/users of the last scheduled instruction. This is a - // local pressure avoidance strategy that also makes the machine code - // readable. - if (tryGreater(Zone->isNextSU(TryCand.SU), Zone->isNextSU(Cand.SU), - TryCand, Cand, NextDefUse)) - return; - // Fall through to original instruction order. if ((Zone->isTop() && TryCand.SU->NodeNum < Cand.SU->NodeNum) || (!Zone->isTop() && TryCand.SU->NodeNum > Cand.SU->NodeNum)) { |