After register is spilled there should not be any DBG_VALUE referring the same register.
authorDevang Patel <dpatel@apple.com>
Tue, 21 Jun 2011 23:02:36 +0000 (23:02 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 21 Jun 2011 23:02:36 +0000 (23:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133569 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegAllocFast.cpp

index dd5baab8d86778ae1acc090bd196884df821e09d..0f27dfcf88480d90be38e9bb9d3270f9425a7366 100644 (file)
@@ -293,9 +293,11 @@ void RAFast::spillVirtReg(MachineBasicBlock::iterator MI,
         MachineBasicBlock *MBB = DBG->getParent();
         MBB->insert(MI, NewDV);
         DEBUG(dbgs() << "Inserting debug info due to spill:" << "\n" << *NewDV);
-        LRIDbgValues[li] = NewDV;
       }
     }
+    // Now this register is spilled there is should not be any DBG_VALUE pointing
+    // to this register because they are all pointing to spilled value now.
+    LRIDbgValues.clear();
     if (SpillKill)
       LR.LastUse = 0; // Don't kill register again
   }