summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2016-09-22 21:39:52 +0000
committerMatthias Braun <matze@braunis.de>2016-09-22 21:39:52 +0000
commit46533e614b78c538c24260f180a0b13298f198bb (patch)
treeb999be6a2a535c65261897126541e10d400ab0f9 /llvm
parentc7957ef86cc4e8b87d19e746062368344c7acf7d (diff)
downloadbcm5719-llvm-46533e614b78c538c24260f180a0b13298f198bb.tar.gz
bcm5719-llvm-46533e614b78c538c24260f180a0b13298f198bb.zip
MachineScheduler: Remove ineffective heuristic; NFC
Currently all nodes get added to the NextSU list when they are released, so any candidate must be in that list, making the heuristic ineffective. Remove it for now, we can add it back later in a working fashion if necessary. llvm-svn: 282200
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/CodeGen/MachineScheduler.h8
-rw-r--r--llvm/lib/CodeGen/MachineScheduler.cpp11
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)) {
OpenPOWER on IntegriCloud