[llvm-commits] [llvm] r118022 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

Devang Patel dpatel at apple.com
Tue Nov 2 10:19:04 PDT 2010


Author: dpatel
Date: Tue Nov  2 12:19:03 2010
New Revision: 118022

URL: http://llvm.org/viewvc/llvm-project?rev=118022&view=rev
Log:
If value map does not have register for an argument then try to find frame index before giving up.

Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp?rev=118022&r1=118021&r2=118022&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp Tue Nov  2 12:19:03 2010
@@ -3980,12 +3980,11 @@
   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 @@
         Reg = TRI->getFrameRegister(MF);
         Offset = FINode->getIndex();
       }
+  }
+
+  if (!Reg)
+    return false;
 
   MachineInstrBuilder MIB = BuildMI(MF, getCurDebugLoc(),
                                     TII->get(TargetOpcode::DBG_VALUE))





More information about the llvm-commits mailing list