Renumber slot indexes uniformly instead of spacing according to the number of defs.

There are probably much larger speedups to be had by renumbering locally instead
of looping over the whole function. For now, the greedy register allocator is
25% faster.

llvm-svn: 126926
This commit is contained in:
Jakob Stoklund Olesen 2011-03-03 06:29:01 +00:00
parent 4ec757d588
commit bfdbc11554
1 changed files with 1 additions and 15 deletions

View File

@ -129,26 +129,12 @@ void SlotIndexes::renumberIndexes() {
// had been present.
DEBUG(dbgs() << "\n*** Renumbering SlotIndexes ***\n");
functionSize = 0;
unsigned index = 0;
for (IndexListEntry *curEntry = front(); curEntry != getTail();
curEntry = curEntry->getNext()) {
curEntry->setIndex(index);
if (curEntry->getInstr() == 0) {
// MBB start entry. Just step index by 1.
index += SlotIndex::NUM;
}
else {
++functionSize;
unsigned Slots = curEntry->getInstr()->getDesc().getNumDefs();
if (Slots == 0)
Slots = 1;
index += (Slots + 1) * SlotIndex::NUM;
}
index += 4*SlotIndex::NUM;
}
}