This fixes Benchmarks/Prolangs-C/unix-smail
authorChris Lattner <sabre@nondot.org>
Fri, 8 Sep 2006 19:11:11 +0000 (19:11 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 8 Sep 2006 19:11:11 +0000 (19:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30198 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegAllocLocal.cpp

index 2b249b2f825c95681df627d70185f0fbdbb26779..8e7c1fe2a0217a179bccb6670943673fdc1b37ad 100644 (file)
@@ -596,6 +596,8 @@ void RA::AllocateBasicBlock(MachineBasicBlock &MBB) {
       if (MO.isRegister() && MO.isDef() && MO.getReg() &&
           MRegisterInfo::isPhysicalRegister(MO.getReg())) {
         unsigned Reg = MO.getReg();
+        if (PhysRegsUsed[Reg] == -2) continue;  // Something like ESP.
+            
         PhysRegsEverUsed[Reg] = true;
         spillPhysReg(MBB, MI, Reg, true); // Spill any existing value in the reg
         PhysRegsUsed[Reg] = 0;            // It is free and reserved now