diff options
author | David Blaikie <dblaikie@gmail.com> | 2014-10-09 20:26:15 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2014-10-09 20:26:15 +0000 |
commit | 78b65b6f2ce7a5ec6266f30995ad5d8dca610346 (patch) | |
tree | 864344146ee27fd3d354ffc43bf823ff2a61e451 /llvm/lib/CodeGen/AsmPrinter | |
parent | 1d072348cfd5508b3934b0d24c54e42a7b2fe988 (diff) | |
download | bcm5719-llvm-78b65b6f2ce7a5ec6266f30995ad5d8dca610346.tar.gz bcm5719-llvm-78b65b6f2ce7a5ec6266f30995ad5d8dca610346.zip |
Sink DwarfDebug::createAndAddScopeChildren down into DwarfCompileUnit.
llvm-svn: 219437
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 16 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h | 2 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 15 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h | 3 |
4 files changed, 17 insertions, 19 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index 13bd12ee204..ec5c2ba399e 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -599,8 +599,7 @@ void DwarfCompileUnit::constructSubprogramScopeDIE(LexicalScope *Scope) { // Collect lexical scope children first. // ObjectPointer might be a local (non-argument) local variable if it's a // block's synthetic this pointer. - if (DIE *BlockObjPtr = - DD->createAndAddScopeChildren(*this, Scope, ScopeDIE)) { + if (DIE *BlockObjPtr = createAndAddScopeChildren(Scope, ScopeDIE)) { assert(!ObjectPointer && "multiple object pointers can't be described"); ObjectPointer = BlockObjPtr; } @@ -609,4 +608,17 @@ void DwarfCompileUnit::constructSubprogramScopeDIE(LexicalScope *Scope) { addDIEEntry(ScopeDIE, dwarf::DW_AT_object_pointer, *ObjectPointer); } +DIE *DwarfCompileUnit::createAndAddScopeChildren(LexicalScope *Scope, + DIE &ScopeDIE) { + // We create children when the scope DIE is not null. + SmallVector<std::unique_ptr<DIE>, 8> Children; + DIE *ObjectPointer = createScopeChildrenDIE(Scope, Children); + + // Add children + for (auto &I : Children) + ScopeDIE.addChild(std::move(I)); + + return ObjectPointer; +} + } // end llvm namespace diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h index fb6a867cc7d..9b97a51d371 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h @@ -118,6 +118,8 @@ public: /// \brief Construct a DIE for this subprogram scope. void constructSubprogramScopeDIE(LexicalScope *Scope); + + DIE *createAndAddScopeChildren(LexicalScope *Scope, DIE &ScopeDIE); }; } // end llvm namespace diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 49afdf275e3..86fe1a9e704 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -330,19 +330,6 @@ bool DwarfDebug::isLexicalScopeDIENull(LexicalScope *Scope) { return !getLabelAfterInsn(Ranges.front().second); } -DIE *DwarfDebug::createAndAddScopeChildren(DwarfCompileUnit &TheCU, - LexicalScope *Scope, DIE &ScopeDIE) { - // We create children when the scope DIE is not null. - SmallVector<std::unique_ptr<DIE>, 8> Children; - DIE *ObjectPointer = TheCU.createScopeChildrenDIE(Scope, Children); - - // Add children - for (auto &I : Children) - ScopeDIE.addChild(std::move(I)); - - return ObjectPointer; -} - void DwarfDebug::constructAbstractSubprogramScopeDIE(DwarfCompileUnit &TheCU, LexicalScope *Scope) { assert(Scope && Scope->getScopeNode()); @@ -380,7 +367,7 @@ void DwarfDebug::constructAbstractSubprogramScopeDIE(DwarfCompileUnit &TheCU, if (TheCU.getCUNode().getEmissionKind() != DIBuilder::LineTablesOnly) SPCU.addUInt(*AbsDef, dwarf::DW_AT_inline, None, dwarf::DW_INL_inlined); - if (DIE *ObjectPointer = createAndAddScopeChildren(SPCU, Scope, *AbsDef)) + if (DIE *ObjectPointer = SPCU.createAndAddScopeChildren(Scope, *AbsDef)) SPCU.addDIEEntry(*AbsDef, dwarf::DW_AT_object_pointer, *ObjectPointer); } diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h index 7d72602792f..7ee0bc7fe6a 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -682,9 +682,6 @@ public: SmallVector<DbgVariable *, 8> &getCurrentFnArguments() { return CurrentFnArguments; } - - DIE *createAndAddScopeChildren(DwarfCompileUnit &TheCU, LexicalScope *Scope, - DIE &ScopeDIE); }; } // End of namespace llvm |