Handle printing of intervals that are not assign to any physical
authorAlkis Evlogimenos <alkis@evlogimenos.com>
Fri, 16 Jan 2004 20:29:42 +0000 (20:29 +0000)
committerAlkis Evlogimenos <alkis@evlogimenos.com>
Fri, 16 Jan 2004 20:29:42 +0000 (20:29 +0000)
register yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10895 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegAllocLinearScan.cpp

index abd139009314fb67fafba812071dee00d4dcd4c3..8712e98d850b139b79ab82fb359a27dfcb619861 100644 (file)
@@ -161,21 +161,22 @@ namespace {
             }
             std::cerr << '\n';
         }
+
         void printIntervals(const char* const str,
                             RA::IntervalPtrs::const_iterator i,
                             RA::IntervalPtrs::const_iterator e) const {
             if (str) std::cerr << str << " intervals:\n";
             for (; i != e; ++i) {
                 std::cerr << "\t\t" << **i << " -> ";
-                if ((*i)->reg < MRegisterInfo::FirstVirtualRegister) {
-                    std::cerr << mri_->getName((*i)->reg);
-                }
-                else {
-                    std::cerr << mri_->getName(v2pMap_.find((*i)->reg)->second);
+                unsigned reg = (*i)->reg;
+                if (reg >= MRegisterInfo::FirstVirtualRegister) {
+                    Virt2PhysMap::const_iterator it = v2pMap_.find(reg);
+                    reg = (it == v2pMap_.end() ? 0 : it->second);
                 }
-                std::cerr << '\n';
+                std::cerr << mri_->getName((*i)->reg) << '\n';
             }
         }
+
         void printFreeRegs(const char* const str,
                            const TargetRegisterClass* rc) const {
             if (str) std::cerr << str << ':';