summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-01-09 21:58:20 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-01-09 21:58:20 +0000
commit42e9c963921776cb498c33b6c6c03f29971316f3 (patch)
tree0e3b29c341c27f498cd008f35d90e8d27b099c4c /include
parent9dddf08eb8851e7c707df7f36b18e4e738e717cc (diff)
downloadllvm-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.h6
-rw-r--r--include/llvm/CodeGen/MachineRegisterInfo.h6
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> &