forked from OSchip/llvm-project
Correct fix for a crasher on functions with live in values
llvm-svn: 30099
This commit is contained in:
parent
bff0b5969f
commit
1eed04d1fb
|
@ -613,15 +613,17 @@ void LiveIntervals::computeIntervals() {
|
||||||
DEBUG(std::cerr << ((Value*)mbb->getBasicBlock())->getName() << ":\n");
|
DEBUG(std::cerr << ((Value*)mbb->getBasicBlock())->getName() << ":\n");
|
||||||
|
|
||||||
MachineBasicBlock::iterator mi = mbb->begin(), miEnd = mbb->end();
|
MachineBasicBlock::iterator mi = mbb->begin(), miEnd = mbb->end();
|
||||||
if (IgnoreFirstInstr) { ++mi; IgnoreFirstInstr = false; }
|
if (IgnoreFirstInstr) {
|
||||||
|
++mi;
|
||||||
|
IgnoreFirstInstr = false;
|
||||||
|
MIIndex += InstrSlots::NUM;
|
||||||
|
}
|
||||||
|
|
||||||
for (; mi != miEnd; ++mi) {
|
for (; mi != miEnd; ++mi) {
|
||||||
const TargetInstrDescriptor& tid =
|
const TargetInstrDescriptor& tid =
|
||||||
tm_->getInstrInfo()->get(mi->getOpcode());
|
tm_->getInstrInfo()->get(mi->getOpcode());
|
||||||
DEBUG(std::cerr << MIIndex << "\t" << *mi);
|
DEBUG(std::cerr << MIIndex << "\t" << *mi);
|
||||||
|
|
||||||
// FIXME: Why is this needed?
|
|
||||||
MIIndex = getInstructionIndex(mi);
|
|
||||||
|
|
||||||
// handle implicit defs
|
// handle implicit defs
|
||||||
if (tid.ImplicitDefs) {
|
if (tid.ImplicitDefs) {
|
||||||
for (const unsigned* id = tid.ImplicitDefs; *id; ++id)
|
for (const unsigned* id = tid.ImplicitDefs; *id; ++id)
|
||||||
|
|
Loading…
Reference in New Issue