Implement a simple target-independent CFG cleanup pass
[oota-llvm.git] / lib / CodeGen / RegAllocLocal.cpp
index 0b5fdc5fea2c92230931d0573188057c9b07110e..bea603ce49667b7a8c6f4053816b24d9ebbb4c0d 100644 (file)
@@ -25,7 +25,6 @@
 #include "Support/Debug.h"
 #include "Support/DenseMap.h"
 #include "Support/Statistic.h"
-#include <iostream>
 using namespace llvm;
 
 namespace {
@@ -93,8 +92,8 @@ namespace {
     }
 
     void MarkPhysRegRecentlyUsed(unsigned Reg) {
-      assert(!PhysRegsUseOrder.empty() && "No registers used!");
-      if (PhysRegsUseOrder.back() == Reg) return;  // Already most recently used
+      if(PhysRegsUseOrder.empty() ||
+         PhysRegsUseOrder.back() == Reg) return;  // Already most recently used
 
       for (unsigned i = PhysRegsUseOrder.size(); i != 0; --i)
         if (areRegsEqual(Reg, PhysRegsUseOrder[i-1])) {
@@ -520,7 +519,7 @@ void RA::AllocateBasicBlock(MachineBasicBlock &MBB) {
   // loop over each instruction
   MachineBasicBlock::iterator MI = MBB.begin();
   for (; MI != MBB.end(); ++MI) {
-    const TargetInstrDescriptor &TID = TM->getInstrInfo().get(MI->getOpcode());
+    const TargetInstrDescriptor &TID = TM->getInstrInfo()->get(MI->getOpcode());
     DEBUG(std::cerr << "\nStarting RegAlloc of: " << *MI;
           std::cerr << "  Regs have values: ";
           for (unsigned i = 0; i != RegInfo->getNumRegs(); ++i)