diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-01-09 21:58:20 +0000 |
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-01-09 21:58:20 +0000 |
| commit | d82ac375948d7eb5e404011252e0b420197ccd7f (patch) | |
| tree | 7faa405c478099a35d88b716ba45d2f5b92427b1 /llvm/lib/CodeGen/RegAllocFast.cpp | |
| parent | 878665b4bcfb052076273e1d3df23abd3ebb9a98 (diff) | |
| download | bcm5719-llvm-d82ac375948d7eb5e404011252e0b420197ccd7f.tar.gz bcm5719-llvm-d82ac375948d7eb5e404011252e0b420197ccd7f.zip | |
Remove MachineRegisterInfo::getLastVirtReg(), it was giving wrong results
when no virtual registers have been allocated.
It was only used to resize IndexedMaps, so provide an IndexedMap::resize()
method such that
Map.grow(MRI.getLastVirtReg());
can be replaced with the simpler
Map.resize(MRI.getNumVirtRegs());
This works correctly when no virtuals are allocated, and it bypasses the to/from
index conversions.
llvm-svn: 123130
Diffstat (limited to 'llvm/lib/CodeGen/RegAllocFast.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/RegAllocFast.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/RegAllocFast.cpp b/llvm/lib/CodeGen/RegAllocFast.cpp index 109da42e9c3..6666d9aaf40 100644 --- a/llvm/lib/CodeGen/RegAllocFast.cpp +++ b/llvm/lib/CodeGen/RegAllocFast.cpp @@ -1024,8 +1024,7 @@ bool RAFast::runOnMachineFunction(MachineFunction &Fn) { // initialize the virtual->physical register map to have a 'null' // mapping for all virtual registers - unsigned LastVirtReg = MRI->getLastVirtReg(); - StackSlotForVirtReg.grow(LastVirtReg); + StackSlotForVirtReg.resize(MRI->getNumVirtRegs()); // Loop over all of the basic blocks, eliminating virtual register references for (MachineFunction::iterator MBBi = Fn.begin(), MBBe = Fn.end(); |

