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 | 42e9c963921776cb498c33b6c6c03f29971316f3 (patch) | |
tree | 0e3b29c341c27f498cd008f35d90e8d27b099c4c /include | |
parent | 9dddf08eb8851e7c707df7f36b18e4e738e717cc (diff) | |
download | llvm-42e9c963921776cb498c33b6c6c03f29971316f3.tar.gz llvm-42e9c963921776cb498c33b6c6c03f29971316f3.tar.bz2 llvm-42e9c963921776cb498c33b6c6c03f29971316f3.tar.xz |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123130 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/ADT/IndexedMap.h | 6 | ||||
-rw-r--r-- | include/llvm/CodeGen/MachineRegisterInfo.h | 6 |
2 files changed, 5 insertions, 7 deletions
diff --git a/include/llvm/ADT/IndexedMap.h b/include/llvm/ADT/IndexedMap.h index 04c5815e35..87126ea491 100644 --- a/include/llvm/ADT/IndexedMap.h +++ b/include/llvm/ADT/IndexedMap.h @@ -59,6 +59,10 @@ namespace llvm { storage_.reserve(s); } + void resize(typename StorageT::size_type s) { + storage_.resize(s, nullVal_); + } + void clear() { storage_.clear(); } @@ -66,7 +70,7 @@ namespace llvm { void grow(IndexT n) { unsigned NewSize = toIndex_(n) + 1; if (NewSize > storage_.size()) - storage_.resize(NewSize, nullVal_); + resize(NewSize); } bool inBounds(IndexT n) const { diff --git a/include/llvm/CodeGen/MachineRegisterInfo.h b/include/llvm/CodeGen/MachineRegisterInfo.h index 02242b1fea..0ae1065351 100644 --- a/include/llvm/CodeGen/MachineRegisterInfo.h +++ b/include/llvm/CodeGen/MachineRegisterInfo.h @@ -216,12 +216,6 @@ public: /// unsigned getNumVirtRegs() const { return VRegInfo.size(); } - /// getLastVirtReg - Return the highest currently assigned virtual register. - /// - unsigned getLastVirtReg() const { - return TargetRegisterInfo::index2VirtReg(getNumVirtRegs() - 1); - } - /// getRegClassVirtRegs - Return the list of virtual registers of the given /// target register class. const std::vector<unsigned> & |