diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 69 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h | 3 | 
2 files changed, 1 insertions, 71 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 28ea3104f00..e3956c93ecd 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -444,7 +444,7 @@ DIE *DwarfDebug::createScopeChildrenDIE(    unsigned ChildCountWithoutScopes = Children.size();    for (LexicalScope *LS : Scope->getChildren()) -    constructScopeDIE(TheCU, LS, Children); +    TheCU.constructScopeDIE(LS, Children);    if (ChildScopeCount)      *ChildScopeCount = Children.size() - ChildCountWithoutScopes; @@ -548,73 +548,6 @@ void DwarfDebug::constructSubprogramScopeDIE(DwarfCompileUnit &TheCU,      TheCU.addDIEEntry(ScopeDIE, dwarf::DW_AT_object_pointer, *ObjectPointer);  } -// Construct a DIE for this scope. -void DwarfDebug::constructScopeDIE( -    DwarfCompileUnit &TheCU, LexicalScope *Scope, -    SmallVectorImpl<std::unique_ptr<DIE>> &FinalChildren) { -  if (!Scope || !Scope->getScopeNode()) -    return; - -  DIScope DS(Scope->getScopeNode()); - -  assert((Scope->getInlinedAt() || !DS.isSubprogram()) && -         "Only handle inlined subprograms here, use " -         "constructSubprogramScopeDIE for non-inlined " -         "subprograms"); - -  SmallVector<std::unique_ptr<DIE>, 8> Children; - -  // We try to create the scope DIE first, then the children DIEs. This will -  // avoid creating un-used children then removing them later when we find out -  // the scope DIE is null. -  std::unique_ptr<DIE> ScopeDIE; -  if (Scope->getParent() && DS.isSubprogram()) { -    ScopeDIE = constructInlinedScopeDIE(TheCU, Scope); -    if (!ScopeDIE) -      return; -    // We create children when the scope DIE is not null. -    createScopeChildrenDIE(TheCU, Scope, Children); -  } else { -    // Early exit when we know the scope DIE is going to be null. -    if (isLexicalScopeDIENull(Scope)) -      return; - -    unsigned ChildScopeCount; - -    // We create children here when we know the scope DIE is not going to be -    // null and the children will be added to the scope DIE. -    createScopeChildrenDIE(TheCU, Scope, Children, &ChildScopeCount); - -    // There is no need to emit empty lexical block DIE. -    std::pair<ImportedEntityMap::const_iterator, -              ImportedEntityMap::const_iterator> Range = -        std::equal_range(ScopesWithImportedEntities.begin(), -                         ScopesWithImportedEntities.end(), -                         std::pair<const MDNode *, const MDNode *>(DS, nullptr), -                         less_first()); -    for (ImportedEntityMap::const_iterator i = Range.first; i != Range.second; -         ++i) -      Children.push_back( -          TheCU.constructImportedEntityDIE(DIImportedEntity(i->second))); -    // If there are only other scopes as children, put them directly in the -    // parent instead, as this scope would serve no purpose. -    if (Children.size() == ChildScopeCount) { -      FinalChildren.insert(FinalChildren.end(), -                           std::make_move_iterator(Children.begin()), -                           std::make_move_iterator(Children.end())); -      return; -    } -    ScopeDIE = constructLexicalScopeDIE(TheCU, Scope); -    assert(ScopeDIE && "Scope DIE should not be null."); -  } - -  // Add children -  for (auto &I : Children) -    ScopeDIE->addChild(std::move(I)); - -  FinalChildren.push_back(std::move(ScopeDIE)); -} -  void DwarfDebug::addGnuPubAttributes(DwarfUnit &U, DIE &D) const {    if (!GenerateGnuPubSections)      return; diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h index 9deaa94ca06..b918a045635 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -354,9 +354,6 @@ class DwarfDebug : public AsmPrinterHandler {    void addScopeRangeList(DwarfCompileUnit &TheCU, DIE &ScopeDIE,                           const SmallVectorImpl<InsnRange> &Range); -  /// \brief Construct a DIE for this scope. -  void constructScopeDIE(DwarfCompileUnit &TheCU, LexicalScope *Scope, -                         SmallVectorImpl<std::unique_ptr<DIE>> &FinalChildren);    DIE *createAndAddScopeChildren(DwarfCompileUnit &TheCU, LexicalScope *Scope,                                   DIE &ScopeDIE);    /// \brief Construct a DIE for this abstract scope.  | 

