summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2008-11-21 00:10:42 +0000
committerDan Gohman <gohman@apple.com>2008-11-21 00:10:42 +0000
commitc602dd407caebe27271e82e2b0420813decb5058 (patch)
tree15ec535eafd8208ea8e6f05952c98b59f14fbbbc /llvm/lib/CodeGen/SelectionDAG
parentf5260d29c28cd28d0206707bb60f6cf1b2135e27 (diff)
downloadbcm5719-llvm-c602dd407caebe27271e82e2b0420813decb5058.tar.gz
bcm5719-llvm-c602dd407caebe27271e82e2b0420813decb5058.zip
Change these schedulers to not emit no-ops. It turns out that
the RR scheduler actually does look at latency values, but it doesn't use a hazard recognizer so it has no way to know when a no-op is needed, as opposed to just stalling and incrementing the cycle count. llvm-svn: 59759
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp4
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp8
2 files changed, 3 insertions, 9 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
index 023ebf3b559..5993bcd7fe6 100644
--- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
@@ -577,9 +577,7 @@ void ScheduleDAGFast::ListScheduleBottomUp() {
}
NotReady.clear();
- if (!CurSU)
- Sequence.push_back(0);
- else
+ if (CurSU)
ScheduleNodeBottomUp(CurSU, CurCycle);
++CurCycle;
}
diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
index 8e9ab44bd0d..b75e7f7722b 100644
--- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
@@ -1052,9 +1052,7 @@ void ScheduleDAGRRList::ListScheduleBottomUp() {
}
NotReady.clear();
- if (!CurSU)
- Sequence.push_back(0);
- else
+ if (CurSU)
ScheduleNodeBottomUp(CurSU, CurCycle);
++CurCycle;
}
@@ -1152,9 +1150,7 @@ void ScheduleDAGRRList::ListScheduleTopDown() {
AvailableQueue->push_all(NotReady);
NotReady.clear();
- if (!CurSU)
- Sequence.push_back(0);
- else
+ if (CurSU)
ScheduleNodeTopDown(CurSU, CurCycle);
++CurCycle;
}
OpenPOWER on IntegriCloud