From 68084538cb208a8842812ba22fbf041c4efe732b Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Fri, 10 Oct 2014 16:59:52 +0000 Subject: [PATCH] Simplify a few uses of DwarfDebug::SPMap git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219510 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 24 +++--------------------- lib/CodeGen/AsmPrinter/DwarfDebug.h | 2 +- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index e9b93bba343..491681aafd2 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -345,9 +345,7 @@ void DwarfDebug::constructAbstractSubprogramScopeDIE(LexicalScope *Scope) { // Find the subprogram's DwarfCompileUnit in the SPMap in case the subprogram // was inlined from another compile unit. - DwarfCompileUnit &SPCU = *SPMap[SP]; - - AbsDef = &SPCU.constructAbstractSubprogramScopeDIE(Scope); + AbsDef = &SPMap[SP]->constructAbstractSubprogramScopeDIE(Scope); } void DwarfDebug::addGnuPubAttributes(DwarfUnit &U, DIE &D) const { @@ -515,24 +513,8 @@ void DwarfDebug::finishVariableDefinitions() { } void DwarfDebug::finishSubprogramDefinitions() { - const Module *M = MMI->getModule(); - - NamedMDNode *CU_Nodes = M->getNamedMetadata("llvm.dbg.cu"); - for (MDNode *N : CU_Nodes->operands()) { - DICompileUnit TheCU(N); - // Construct subprogram DIE and add variables DIEs. - DwarfCompileUnit *SPCU = - static_cast(CUMap.lookup(TheCU)); - DIArray Subprograms = TheCU.getSubprograms(); - for (unsigned i = 0, e = Subprograms.getNumElements(); i != e; ++i) { - DISubprogram SP(Subprograms.getElement(i)); - // Perhaps the subprogram is in another CU (such as due to comdat - // folding, etc), in which case ignore it here. - if (SPMap[SP] != SPCU) - continue; - SPCU->finishSubprogramDefinition(SP); - } - } + for (const auto &P : SPMap) + P.second->finishSubprogramDefinition(DISubprogram(P.first)); } diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h index 9e314eba992..069787a7015 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -174,7 +174,7 @@ class DwarfDebug : public AsmPrinterHandler { MapVector CUMap; // Maps subprogram MDNode with its corresponding DwarfCompileUnit. - DenseMap SPMap; + MapVector SPMap; // Maps a CU DIE with its corresponding DwarfCompileUnit. DenseMap CUDieMap; -- 2.34.1