diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-10-05 01:42:35 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-10-05 01:42:35 +0000 |
commit | da5a9699449c304922708f71e91c0078ca258531 (patch) | |
tree | 2016a2b911480e424da354c1777cf91e3f8b6b2c | |
parent | 01b2b8170e832653706931b7c80ec86751daccce (diff) | |
download | external_llvm-da5a9699449c304922708f71e91c0078ca258531.zip external_llvm-da5a9699449c304922708f71e91c0078ca258531.tar.gz external_llvm-da5a9699449c304922708f71e91c0078ca258531.tar.bz2 |
Chain producing nodes cannot be moved, not chain reading nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42627 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp index 081e310..7760339 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp +++ b/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp @@ -397,17 +397,19 @@ SUnit *ScheduleDAGRRList::CopyAndMoveSuccessors(SUnit *SU) { return NULL; SUnit *NewSU; - for (unsigned i = 0, e = N->getNumValues(); i != e; ++i) - if (N->getValueType(i) == MVT::Flag) - return NULL; bool TryUnfold = false; + for (unsigned i = 0, e = N->getNumValues(); i != e; ++i) { + MVT::ValueType VT = N->getValueType(i); + if (VT == MVT::Flag) + return NULL; + else if (VT == MVT::Other) + TryUnfold = true; + } for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) { const SDOperand &Op = N->getOperand(i); MVT::ValueType VT = Op.Val->getValueType(Op.ResNo); if (VT == MVT::Flag) return NULL; - else if (VT == MVT::Other) - TryUnfold = true; } if (TryUnfold) { |