diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-04-18 00:35:36 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-04-18 00:35:36 +0000 |
commit | 7c60f20e497c10e506a44317aa98ba23f8b04b54 (patch) | |
tree | e7afd3feb1607962af442912546b7ae6935c5621 /llvm/lib/CodeGen/AsmPrinter | |
parent | 9a5b990f27455374007c2288f12eeef945fb84f7 (diff) | |
download | bcm5719-llvm-7c60f20e497c10e506a44317aa98ba23f8b04b54.tar.gz bcm5719-llvm-7c60f20e497c10e506a44317aa98ba23f8b04b54.zip |
DebugInfo: Delete DIDescriptor (but not its subclasses)
Delete `DIDescriptor` and update the remaining users. I'll follow-up by
deleting subclasses in manageable groups (top-down).
llvm-svn: 235248
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 9 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp | 19 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h | 9 |
3 files changed, 16 insertions, 21 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index c4409aa78a3..c7e853fa988 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -612,8 +612,8 @@ DwarfCompileUnit::constructAbstractSubprogramScopeDIE(LexicalScope *Scope) { if (includeMinimalInlineScopes()) ContextDIE = &getUnitDie(); // Some of this is duplicated from DwarfUnit::getOrCreateSubprogramDIE, with - // the important distinction that the DIDescriptor is not associated with the - // DIE (since the DIDescriptor will be associated with the concrete DIE, if + // the important distinction that the debug node is not associated with the + // DIE (since the debug node will be associated with the concrete DIE, if // any). It could be refactored to some common utility function. else if (auto *SPDecl = SP->getDeclaration()) { ContextDIE = &getUnitDie(); @@ -621,10 +621,9 @@ DwarfCompileUnit::constructAbstractSubprogramScopeDIE(LexicalScope *Scope) { } else ContextDIE = getOrCreateContextDIE(resolve(SP->getScope())); - // Passing null as the associated DIDescriptor because the abstract definition + // Passing null as the associated node because the abstract definition // shouldn't be found by lookup. - AbsDef = - &createAndAddDIE(dwarf::DW_TAG_subprogram, *ContextDIE, DIDescriptor()); + AbsDef = &createAndAddDIE(dwarf::DW_TAG_subprogram, *ContextDIE, nullptr); applySubprogramAttributesToDefinition(SP, *AbsDef); if (!includeMinimalInlineScopes()) diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp index 91546529877..b73ca99961e 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp @@ -167,7 +167,7 @@ int64_t DwarfUnit::getDefaultLowerBound() const { } /// Check whether the DIE for this MDNode can be shared across CUs. -static bool isShareableAcrossCUs(DIDescriptor D) { +static bool isShareableAcrossCUs(const DebugNode *D) { // When the MDNode can be part of the type system, the DIE can be shared // across CUs. // Combining type units and cross-CU DIE sharing is lower value (since @@ -184,7 +184,7 @@ static bool isShareableAcrossCUs(DIDescriptor D) { /// specified debug variable. We delegate the request to DwarfDebug /// when the DIE for this MDNode can be shared across CUs. The mappings /// will be kept in DwarfDebug for shareable DIEs. -DIE *DwarfUnit::getDIE(DIDescriptor D) const { +DIE *DwarfUnit::getDIE(const DebugNode *D) const { if (isShareableAcrossCUs(D)) return DU->getDIE(D); return MDNodeToDieMap.lookup(D); @@ -193,7 +193,7 @@ DIE *DwarfUnit::getDIE(DIDescriptor D) const { /// insertDIE - Insert DIE into the map. We delegate the request to DwarfDebug /// when the DIE for this MDNode can be shared across CUs. The mappings /// will be kept in DwarfDebug for shareable DIEs. -void DwarfUnit::insertDIE(DIDescriptor Desc, DIE *D) { +void DwarfUnit::insertDIE(const DebugNode *Desc, DIE *D) { if (isShareableAcrossCUs(Desc)) { DU->insertDIE(Desc, D); return; @@ -356,7 +356,7 @@ void DwarfUnit::addDIEEntry(DIE &Die, dwarf::Attribute Attribute, /// Create a DIE with the given Tag, add the DIE to its parent, and /// call insertDIE if MD is not null. -DIE &DwarfUnit::createAndAddDIE(unsigned Tag, DIE &Parent, DIDescriptor N) { +DIE &DwarfUnit::createAndAddDIE(unsigned Tag, DIE &Parent, const DebugNode *N) { assert(Tag != dwarf::DW_TAG_auto_variable && Tag != dwarf::DW_TAG_arg_variable); Parent.addChild(make_unique<DIE>((dwarf::Tag)Tag)); @@ -763,8 +763,7 @@ void DwarfUnit::addLinkageName(DIE &Die, StringRef LinkageName) { /// addTemplateParams - Add template parameters into buffer. void DwarfUnit::addTemplateParams(DIE &Buffer, DIArray TParams) { // Add template parameters. - for (unsigned i = 0, e = TParams.size(); i != e; ++i) { - DIDescriptor Element = TParams[i]; + for (const auto *Element : TParams) { if (auto *TTP = dyn_cast<MDTemplateTypeParameter>(Element)) constructTemplateTypeParameterDIE(Buffer, TTP); else if (auto *TVP = dyn_cast<MDTemplateValueParameter>(Element)) @@ -1040,8 +1039,7 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, DICompositeType CTy) { case dwarf::DW_TAG_class_type: { // Add elements to structure type. DIArray Elements = CTy->getElements(); - for (unsigned i = 0, N = Elements.size(); i < N; ++i) { - DIDescriptor Element = Elements[i]; + for (const auto *Element : Elements) { if (!Element) continue; if (auto *SP = dyn_cast<MDSubprogram>(Element)) @@ -1438,11 +1436,10 @@ void DwarfUnit::constructEnumTypeDIE(DIE &Buffer, DICompositeType CTy) { /// constructContainingTypeDIEs - Construct DIEs for types that contain /// vtables. void DwarfUnit::constructContainingTypeDIEs() { - for (DenseMap<DIE *, const MDNode *>::iterator CI = ContainingTypeMap.begin(), - CE = ContainingTypeMap.end(); + for (auto CI = ContainingTypeMap.begin(), CE = ContainingTypeMap.end(); CI != CE; ++CI) { DIE &SPDie = *CI->first; - DIDescriptor D(CI->second); + const DebugNode *D = CI->second; if (!D) continue; DIE *NDie = getDIE(D); diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h index b354255d709..8b43e868784 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h @@ -106,7 +106,7 @@ protected: /// ContainingTypeMap - This map is used to keep track of subprogram DIEs that /// need DW_AT_containing_type attribute. This attribute points to a DIE that /// corresponds to the MDNode mapped with the subprogram DIE. - DenseMap<DIE *, const MDNode *> ContainingTypeMap; + DenseMap<DIE *, const DebugNode *> ContainingTypeMap; // DIEValueAllocator - All DIEValues are allocated through this allocator. BumpPtrAllocator DIEValueAllocator; @@ -169,7 +169,7 @@ public: /// when the MDNode can be part of the type system, since DIEs for /// the type system can be shared across CUs and the mappings are /// kept in DwarfDebug. - DIE *getDIE(DIDescriptor D) const; + DIE *getDIE(const DebugNode *D) const; /// getDIELoc - Returns a fresh newly allocated DIELoc. DIELoc *getDIELoc() { return new (DIEValueAllocator) DIELoc(); } @@ -178,7 +178,7 @@ public: /// when the MDNode can be part of the type system, since DIEs for /// the type system can be shared across CUs and the mappings are /// kept in DwarfDebug. - void insertDIE(DIDescriptor Desc, DIE *D); + void insertDIE(const DebugNode *Desc, DIE *D); /// addFlag - Add a flag that is true to the DIE. void addFlag(DIE &Die, dwarf::Attribute Attribute); @@ -313,8 +313,7 @@ public: /// Create a DIE with the given Tag, add the DIE to its parent, and /// call insertDIE if MD is not null. - DIE &createAndAddDIE(unsigned Tag, DIE &Parent, - DIDescriptor N = DIDescriptor()); + DIE &createAndAddDIE(unsigned Tag, DIE &Parent, const DebugNode *N = nullptr); /// Compute the size of a header for this unit, not including the initial /// length field. |