aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-01-13 20:24:13 +0000
committerDan Gohman <gohman@apple.com>2009-01-13 20:24:13 +0000
commitbc0b56732a2d1dc22767e0f3930f22a76d99470a (patch)
treeca0c8659323b4d12946471be758a50bbd2d96735 /lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp
parent6893cd76152e805291c3c9f36fa81b330846434d (diff)
downloadexternal_llvm-bc0b56732a2d1dc22767e0f3930f22a76d99470a.zip
external_llvm-bc0b56732a2d1dc22767e0f3930f22a76d99470a.tar.gz
external_llvm-bc0b56732a2d1dc22767e0f3930f22a76d99470a.tar.bz2
The list-td and list-tdrr schedulers don't yet support physreg
scheduling dependencies. Add assertion checks to help catch this. It appears the Mips target defaults to list-td, and it has a regression test that uses a physreg dependence. Such code was liable to be miscompiled, and now evokes an assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62177 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp')
-rw-r--r--lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp
index fea74ca..6f0767a 100644
--- a/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp
+++ b/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp
@@ -140,8 +140,12 @@ void ScheduleDAGList::ScheduleNodeTopDown(SUnit *SU, unsigned CurCycle) {
// Top down: release successors.
for (SUnit::succ_iterator I = SU->Succs.begin(), E = SU->Succs.end();
- I != E; ++I)
+ I != E; ++I) {
+ assert(!I->isAssignedRegDep() &&
+ "The list-td scheduler doesn't yet support physreg dependencies!");
+
ReleaseSucc(SU, *I);
+ }
SU->isScheduled = true;
AvailableQueue->ScheduledNode(SU);