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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126926 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jakob Stoklund Olesen 2011-03-03 06:29:01 +00:00
parent f37712f486
commit 2c11eb333c

View File

@ -129,26 +129,12 @@ void SlotIndexes::renumberIndexes() {
// had been present. // had been present.
DEBUG(dbgs() << "\n*** Renumbering SlotIndexes ***\n"); DEBUG(dbgs() << "\n*** Renumbering SlotIndexes ***\n");
functionSize = 0;
unsigned index = 0; unsigned index = 0;
for (IndexListEntry *curEntry = front(); curEntry != getTail(); for (IndexListEntry *curEntry = front(); curEntry != getTail();
curEntry = curEntry->getNext()) { curEntry = curEntry->getNext()) {
curEntry->setIndex(index); curEntry->setIndex(index);
index += 4*SlotIndex::NUM;
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;
}
} }
} }