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 | 719f6a9d9cf29d7daa33cfe43a9e7fe671b24df1 (patch) | |
tree | 01e6e771cd80a77912333220ed58fdf1c6c38bcf | |
parent | 8c5358c93675b009ba2d57c3a5980f6bc58ba536 (diff) |
Refactor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102661 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Analysis/DebugInfo.cpp | 11 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 6 |
2 files changed, 13 insertions, 4 deletions
diff --git a/lib/Analysis/DebugInfo.cpp b/lib/Analysis/DebugInfo.cpp index 8ba19020b0..d33bb6042b 100644 --- a/lib/Analysis/DebugInfo.cpp +++ b/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/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index 3f81268c91..791482906d 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/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; |