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
This commit is contained in:
Evan Cheng 2007-10-05 01:42:35 +00:00
parent 117c366219
commit d5cb5a462b

View File

@ -397,17 +397,19 @@ SUnit *ScheduleDAGRRList::CopyAndMoveSuccessors(SUnit *SU) {
return NULL; return NULL;
SUnit *NewSU; SUnit *NewSU;
for (unsigned i = 0, e = N->getNumValues(); i != e; ++i)
if (N->getValueType(i) == MVT::Flag)
return NULL;
bool TryUnfold = false; 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) { for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) {
const SDOperand &Op = N->getOperand(i); const SDOperand &Op = N->getOperand(i);
MVT::ValueType VT = Op.Val->getValueType(Op.ResNo); MVT::ValueType VT = Op.Val->getValueType(Op.ResNo);
if (VT == MVT::Flag) if (VT == MVT::Flag)
return NULL; return NULL;
else if (VT == MVT::Other)
TryUnfold = true;
} }
if (TryUnfold) { if (TryUnfold) {