Treat mid-block labels the same as terminators when building the

MachineInstr scheduling DAG, meaning they implicitly depend on all
preceding defs. This fixes Benchmarks/Shootout-C++/except and
Regression/C++/EH/simple_rethrow in
  -relocation-model=pic -disable-post-RA-scheduler=false
mode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59747 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2008-11-20 19:58:35 +00:00
parent 5ce0973f7f
commit 8eaf41de8a

View File

@ -97,7 +97,7 @@ void ScheduleDAGInstrs::BuildSchedUnits() {
}
if (Terminator && SU->Succs.empty())
Terminator->addPred(SU, /*isCtrl=*/false, /*isSpecial=*/false);
if (MI->getDesc().isTerminator())
if (MI->getDesc().isTerminator() || MI->isLabel())
Terminator = SU;
}
}