diff options
| author | Devang Patel <dpatel@apple.com> | 2010-04-29 20:40:36 +0000 | 
|---|---|---|
| committer | Devang Patel <dpatel@apple.com> | 2010-04-29 20:40:36 +0000 | 
| commit | 0395553e35d19995b3af7d2450b2b5c35da362f1 (patch) | |
| tree | d167a7cabf586207ebf56dd6b936b370395812c7 /llvm/lib | |
| parent | 6feac8a39b6607c5be2a9284711b2a9da0feea8f (diff) | |
| download | bcm5719-llvm-0395553e35d19995b3af7d2450b2b5c35da362f1.tar.gz bcm5719-llvm-0395553e35d19995b3af7d2450b2b5c35da362f1.zip  | |
Refactor.
llvm-svn: 102661
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Analysis/DebugInfo.cpp | 11 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 6 | 
2 files changed, 13 insertions, 4 deletions
diff --git a/llvm/lib/Analysis/DebugInfo.cpp b/llvm/lib/Analysis/DebugInfo.cpp index 8ba19020b09..d33bb6042b2 100644 --- a/llvm/lib/Analysis/DebugInfo.cpp +++ b/llvm/lib/Analysis/DebugInfo.cpp @@ -402,6 +402,17 @@ uint64_t DIDerivedType::getOriginalTypeSize() const {    return getSizeInBits();  } +/// isInlinedFnArgument - Return trule if this variable provides debugging +/// information for an inlined function arguments. +bool DIVariable::isInlinedFnArgument(const Function *CurFn) { +  assert(CurFn && "Invalid function"); +  if (!getContext().isSubprogram()) +    return false; +  // This variable is not inlined function argument if its scope  +  // does not describe current function. +  return !(DISubprogram(getContext().getNode()).describes(CurFn)); +} +  /// describes - Return true if this subprogram provides debugging  /// information for the function F.  bool DISubprogram::describes(const Function *F) { diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index 3f81268c91a..791482906d8 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -3691,14 +3691,12 @@ SelectionDAGBuilder::EmitFuncArgumentDbgValue(const DbgValueInst &DI,    if (!isa<Argument>(V))      return false; +  MachineFunction &MF = DAG.getMachineFunction();    // Ignore inlined function arguments here.    DIVariable DV(Variable); -  if (DV.getContext().isSubprogram() -      && DISubprogram(DV.getContext().getNode()).getLinkageName() -      != cast<Argument>(V)->getParent()->getName()) +  if (DV.isInlinedFnArgument(MF.getFunction()))      return false; -  MachineFunction &MF = DAG.getMachineFunction();    MachineBasicBlock *MBB = FuncInfo.MBBMap[DI.getParent()];    if (MBB != &MF.front())      return false;  | 

