The scheduler needs to be aware on the existence of untyped nodes when it performs type propagation for EXTRACT_SUBREG.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133838 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Owen Anderson 2011-06-24 23:02:22 +00:00
parent 9c99cfef93
commit e6b8bf8c4a

View File

@ -521,7 +521,8 @@ void ScheduleDAGSDNodes::RegDefIter::Advance() {
if (!Node->hasAnyUseOfValue(DefIdx))
continue;
if (Node->isMachineOpcode() &&
Node->getMachineOpcode() == TargetOpcode::EXTRACT_SUBREG) {
Node->getMachineOpcode() == TargetOpcode::EXTRACT_SUBREG &&
Node->getOperand(0).getValueType() != MVT::untyped) {
// Propagate the incoming (full-register) type. I doubt it's needed.
ValueType = Node->getOperand(0).getValueType();
}