Skip to content

Commit 50f69c5

Browse files
committed
Merge r127263 from mainline, fixes PR9427 for 2.9.
llvm-svn: 127437
1 parent caf2723 commit 50f69c5

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1785,7 +1785,7 @@ int RegReductionPQBase::RegPressureDiff(SUnit *SU, unsigned &LiveUses) const {
17851785
}
17861786
const SDNode *N = SU->getNode();
17871787

1788-
if (!N->isMachineOpcode() || !SU->NumSuccs)
1788+
if (!N || !N->isMachineOpcode() || !SU->NumSuccs)
17891789
return PDiff;
17901790

17911791
unsigned NumDefs = TII->get(N->getMachineOpcode()).getNumDefs();
@@ -1804,6 +1804,9 @@ void RegReductionPQBase::ScheduledNode(SUnit *SU) {
18041804
if (!TracksRegPressure)
18051805
return;
18061806

1807+
if (!SU->getNode())
1808+
return;
1809+
18071810
for (SUnit::pred_iterator I = SU->Preds.begin(), E = SU->Preds.end();
18081811
I != E; ++I) {
18091812
if (I->isCtrl())
@@ -1870,6 +1873,8 @@ void RegReductionPQBase::UnscheduledNode(SUnit *SU) {
18701873
return;
18711874

18721875
const SDNode *N = SU->getNode();
1876+
if (!N) return;
1877+
18731878
if (!N->isMachineOpcode()) {
18741879
if (N->getOpcode() != ISD::CopyToReg)
18751880
return;

llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,10 @@ void ScheduleDAGSDNodes::BuildSchedGraph(AliasAnalysis *AA) {
446446

447447
// Initialize NumNodeDefs for the current Node's opcode.
448448
void ScheduleDAGSDNodes::RegDefIter::InitNodeNumDefs() {
449+
// Check for phys reg copy.
450+
if (!Node)
451+
return;
452+
449453
if (!Node->isMachineOpcode()) {
450454
if (Node->getOpcode() == ISD::CopyFromReg)
451455
NodeNumDefs = 1;

0 commit comments

Comments
 (0)