If value map does not have register for an argument then try to find frame index...
authorDevang Patel <dpatel@apple.com>
Tue, 2 Nov 2010 17:19:03 +0000 (17:19 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 2 Nov 2010 17:19:03 +0000 (17:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118022 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

index eb149e1dfb5090f1c090eb59b5acf6ceafa058f2..667cac7be9d9da4c661ab2330cb1d1c6679646b7 100644 (file)
@@ -3980,12 +3980,11 @@ SelectionDAGBuilder::EmitFuncArgumentDbgValue(const Value *V, MDNode *Variable,
   if (!Reg) {
     // Check if ValueMap has reg number.
     DenseMap<const Value *, unsigned>::iterator VMI = FuncInfo.ValueMap.find(V);
-    if (VMI == FuncInfo.ValueMap.end())
-      return false;
-    Reg = VMI->second;
+    if (VMI != FuncInfo.ValueMap.end())
+      Reg = VMI->second;
   }
-
-  if (!Reg && N.getNode())
+  
+  if (!Reg && N.getNode()) {
     // Check if frame index is available.
     if (LoadSDNode *LNode = dyn_cast<LoadSDNode>(N.getNode()))
       if (FrameIndexSDNode *FINode = 
@@ -3993,6 +3992,10 @@ SelectionDAGBuilder::EmitFuncArgumentDbgValue(const Value *V, MDNode *Variable,
         Reg = TRI->getFrameRegister(MF);
         Offset = FINode->getIndex();
       }
+  }
+
+  if (!Reg)
+    return false;
 
   MachineInstrBuilder MIB = BuildMI(MF, getCurDebugLoc(),
                                     TII->get(TargetOpcode::DBG_VALUE))