When creating intervals, leave min(1, numdefs) holes after each instruction.
llvm-svn: 57765
This commit is contained in:
parent
43a9d7f3f0
commit
ac4e70d946
|
@ -130,8 +130,12 @@ void LiveIntervals::computeNumbering() {
|
|||
MIIndex += InstrSlots::NUM;
|
||||
FunctionSize++;
|
||||
|
||||
// Insert an empty slot after every instruction.
|
||||
MIIndex += InstrSlots::NUM;
|
||||
// Insert min(1, numdefs) empty slots after every instruction.
|
||||
unsigned Slots = I->getDesc().getNumDefs();
|
||||
if (Slots == 0)
|
||||
Slots = 1;
|
||||
MIIndex += InstrSlots::NUM * Slots;
|
||||
while (Slots--)
|
||||
i2miMap_.push_back(0);
|
||||
}
|
||||
|
||||
|
@ -733,7 +737,11 @@ void LiveIntervals::computeIntervals() {
|
|||
}
|
||||
}
|
||||
|
||||
MIIndex += InstrSlots::NUM;
|
||||
// Skip over the empty slots after each instruction.
|
||||
unsigned Slots = MI->getDesc().getNumDefs();
|
||||
if (Slots == 0)
|
||||
Slots = 1;
|
||||
MIIndex += InstrSlots::NUM * Slots;
|
||||
|
||||
// Skip over empty indices.
|
||||
while (MIIndex / InstrSlots::NUM < i2miMap_.size() &&
|
||||
|
|
Loading…
Reference in New Issue