diff options
author | Dan Gohman <gohman@apple.com> | 2008-11-21 00:10:42 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-11-21 00:10:42 +0000 |
commit | c602dd407caebe27271e82e2b0420813decb5058 (patch) | |
tree | 15ec535eafd8208ea8e6f05952c98b59f14fbbbc /llvm/lib/CodeGen/SelectionDAG | |
parent | f5260d29c28cd28d0206707bb60f6cf1b2135e27 (diff) | |
download | bcm5719-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.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp | 8 |
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; } |