mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Use a reference into the BlockLiveness DenseMap to avoid repeated hash lookups in collectMarkers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175484 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2878b7d7ab
commit
252d798fc3
@ -240,8 +240,11 @@ unsigned StackColoring::collectMarkers(unsigned NumSlot) {
|
||||
BasicBlocks[*FI] = BasicBlockNumbering.size();
|
||||
BasicBlockNumbering.push_back(*FI);
|
||||
|
||||
BlockLiveness[*FI].Begin.resize(NumSlot);
|
||||
BlockLiveness[*FI].End.resize(NumSlot);
|
||||
// Keep a reference to avoid repeated lookups.
|
||||
BlockLifetimeInfo &BlockInfo = BlockLiveness[*FI];
|
||||
|
||||
BlockInfo.Begin.resize(NumSlot);
|
||||
BlockInfo.End.resize(NumSlot);
|
||||
|
||||
for (MachineBasicBlock::iterator BI = (*FI)->begin(), BE = (*FI)->end();
|
||||
BI != BE; ++BI) {
|
||||
@ -265,15 +268,15 @@ unsigned StackColoring::collectMarkers(unsigned NumSlot) {
|
||||
}
|
||||
|
||||
if (IsStart) {
|
||||
BlockLiveness[*FI].Begin.set(Slot);
|
||||
BlockInfo.Begin.set(Slot);
|
||||
} else {
|
||||
if (BlockLiveness[*FI].Begin.test(Slot)) {
|
||||
if (BlockInfo.Begin.test(Slot)) {
|
||||
// Allocas that start and end within a single block are handled
|
||||
// specially when computing the LiveIntervals to avoid pessimizing
|
||||
// the liveness propagation.
|
||||
BlockLiveness[*FI].Begin.reset(Slot);
|
||||
BlockInfo.Begin.reset(Slot);
|
||||
} else {
|
||||
BlockLiveness[*FI].End.set(Slot);
|
||||
BlockInfo.End.set(Slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user