Revert r168630, r168631, and r168633 as these are causing nightly test failures.
authorChad Rosier <mcrosier@apple.com>
Wed, 28 Nov 2012 00:21:29 +0000 (00:21 +0000)
committerChad Rosier <mcrosier@apple.com>
Wed, 28 Nov 2012 00:21:29 +0000 (00:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168751 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MachineRegisterInfo.cpp
lib/CodeGen/RegAllocBase.cpp
lib/CodeGen/RegAllocFast.cpp
lib/CodeGen/RegAllocPBQP.cpp

index 34518fa46b1b1e7b189470a12c34bdae6492c211..95d7a7dd6897071379eb7eb79957c6bc4ecec44c 100644 (file)
@@ -305,8 +305,6 @@ void MachineRegisterInfo::dumpUses(unsigned Reg) const {
 #endif
 
 void MachineRegisterInfo::freezeReservedRegs(const MachineFunction &MF) {
-  assert (!reservedRegsFrozen() &&
-          "freezeReservedRegs should only be called once!");
   ReservedRegs = TRI->getReservedRegs(MF);
   assert(ReservedRegs.size() == TRI->getNumRegs() &&
          "Invalid ReservedRegs vector from target");
index 2b598e3a56562a7d3cfeb72f7a5d3155c0380e14..993dbc71ded377c3f215830091e76392ef6d10c5 100644 (file)
@@ -58,6 +58,7 @@ void RegAllocBase::init(VirtRegMap &vrm,
   VRM = &vrm;
   LIS = &lis;
   Matrix = &mat;
+  MRI->freezeReservedRegs(vrm.getMachineFunction());
   RegClassInfo.runOnMachineFunction(vrm.getMachineFunction());
 }
 
index 3744b06f3ab747a95c04de39caea793f1b0ee4fd..88922169b306c0672278a7ebead53966c2590ee6 100644 (file)
@@ -1127,6 +1127,7 @@ bool RAFast::runOnMachineFunction(MachineFunction &Fn) {
   TM = &Fn.getTarget();
   TRI = TM->getRegisterInfo();
   TII = TM->getInstrInfo();
+  MRI->freezeReservedRegs(Fn);
   RegClassInfo.runOnMachineFunction(Fn);
   UsedInInstr.clear();
   UsedInInstr.setUniverse(TRI->getNumRegs());
index f58d45f13165bb6553c806c6e771b27f3315bc59..02ebce7a11a000d0236421056d40193b87175b36 100644 (file)
@@ -552,6 +552,8 @@ bool RegAllocPBQP::runOnMachineFunction(MachineFunction &MF) {
   vrm = &getAnalysis<VirtRegMap>();
   spiller.reset(createInlineSpiller(*this, MF, *vrm));
 
+  mri->freezeReservedRegs(MF);
+
   DEBUG(dbgs() << "PBQP Register Allocating for " << mf->getName() << "\n");
 
   // Allocator main loop: