diff options
author | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-02-25 21:55:45 +0000 |
---|---|---|
committer | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-02-25 21:55:45 +0000 |
commit | 4d0d864be3d9a698c4edfe36961a22126f041298 (patch) | |
tree | 09856bbbbec226b436a6e3a24aea571e5249e4e6 /lib/CodeGen/VirtRegMap.cpp | |
parent | dd429c6de9e4c65d4992ec6494e57635dcb2b641 (diff) |
Add DenseMap template and actually use it for for mapping virtual regs
to objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11840 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/VirtRegMap.cpp')
-rw-r--r-- | lib/CodeGen/VirtRegMap.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/CodeGen/VirtRegMap.cpp b/lib/CodeGen/VirtRegMap.cpp index bb29ffd954..4f06c6730f 100644 --- a/lib/CodeGen/VirtRegMap.cpp +++ b/lib/CodeGen/VirtRegMap.cpp @@ -38,12 +38,12 @@ namespace { int VirtRegMap::assignVirt2StackSlot(unsigned virtReg) { assert(MRegisterInfo::isVirtualRegister(virtReg)); - assert(v2ssMap_[toIndex(virtReg)] == NO_STACK_SLOT && + assert(v2ssMap_[virtReg] == NO_STACK_SLOT && "attempt to assign stack slot to already spilled register"); const TargetRegisterClass* rc = mf_->getSSARegMap()->getRegClass(virtReg); int frameIndex = mf_->getFrameInfo()->CreateStackObject(rc); - v2ssMap_[toIndex(virtReg)] = frameIndex; + v2ssMap_[virtReg] = frameIndex; ++numSpills; return frameIndex; } @@ -53,14 +53,16 @@ std::ostream& llvm::operator<<(std::ostream& os, const VirtRegMap& vrm) const MRegisterInfo* mri = vrm.mf_->getTarget().getRegisterInfo(); std::cerr << "********** REGISTER MAP **********\n"; - for (unsigned i = 0, e = vrm.v2pMap_.size(); i != e; ++i) { + for (unsigned i = MRegisterInfo::FirstVirtualRegister, + e = vrm.mf_->getSSARegMap()->getLastVirtReg(); i <= e; ++i) { if (vrm.v2pMap_[i] != VirtRegMap::NO_PHYS_REG) - std::cerr << "[reg" << VirtRegMap::fromIndex(i) << " -> " + std::cerr << "[reg" << i << " -> " << mri->getName(vrm.v2pMap_[i]) << "]\n"; } - for (unsigned i = 0, e = vrm.v2ssMap_.size(); i != e; ++i) { + for (unsigned i = MRegisterInfo::FirstVirtualRegister, + e = vrm.mf_->getSSARegMap()->getLastVirtReg(); i <= e; ++i) { if (vrm.v2ssMap_[i] != VirtRegMap::NO_STACK_SLOT) - std::cerr << "[reg" << VirtRegMap::fromIndex(i) << " -> fi#" + std::cerr << "[reg" << i << " -> fi#" << vrm.v2ssMap_[i] << "]\n"; } return std::cerr << '\n'; |