[llvm-commits] [llvm] r102565 - /llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp

Evan Cheng evan.cheng at apple.com
Wed Apr 28 16:52:26 PDT 2010


Author: evancheng
Date: Wed Apr 28 18:52:26 2010
New Revision: 102565

URL: http://llvm.org/viewvc/llvm-project?rev=102565&view=rev
Log:
- Really preserve dbg_value instructions when the register is spilled.
- Also, update dbg_value is the value is being re-matted from a frame slot, e.g. fixed slots for arguments.

Modified:
    llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp

Modified: llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp?rev=102565&r1=102564&r2=102565&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp (original)
+++ llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp Wed Apr 28 18:52:26 2010
@@ -1297,11 +1297,12 @@
     ++ri;
     if (MI->isDebugValue()) {
       // Modify DBG_VALUE now that the value is in a spill slot.
-      if (Slot == VirtRegMap::NO_STACK_SLOT) {
+      if (Slot != VirtRegMap::MAX_STACK_SLOT || isLoadSS) {
         uint64_t Offset = MI->getOperand(1).getImm();
         const MDNode *MDPtr = MI->getOperand(2).getMetadata();
         DebugLoc DL = MI->getDebugLoc();
-        if (MachineInstr *NewDV = tii_->emitFrameIndexDebugValue(*mf_, Slot,
+        int FI = isLoadSS ? LdSlot : (int)Slot;
+        if (MachineInstr *NewDV = tii_->emitFrameIndexDebugValue(*mf_, FI,
                                                            Offset, MDPtr, DL)) {
           DEBUG(dbgs() << "Modifying debug info due to spill:" << "\t" << *MI);
           ReplaceMachineInstrInMaps(MI, NewDV);





More information about the llvm-commits mailing list