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 | d8bace7f607c415ba88b552bce7ad89cca1b1505 (patch) | |
| tree | 6db75e2c53e851efbfa6d8248b76af8ce657ca3e /llvm/lib/CodeGen/VirtRegMap.cpp | |
| parent | b66a35ef9c7cbefd9e3244d1a7a52cca238e223a (diff) | |
| download | bcm5719-llvm-d8bace7f607c415ba88b552bce7ad89cca1b1505.tar.gz bcm5719-llvm-d8bace7f607c415ba88b552bce7ad89cca1b1505.zip | |
Add DenseMap template and actually use it for for mapping virtual regs
to objects.
llvm-svn: 11840
Diffstat (limited to 'llvm/lib/CodeGen/VirtRegMap.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/VirtRegMap.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/VirtRegMap.cpp b/llvm/lib/CodeGen/VirtRegMap.cpp index bb29ffd9548..4f06c6730fc 100644 --- a/llvm/lib/CodeGen/VirtRegMap.cpp +++ b/llvm/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'; |

