diff options
| author | David Blaikie <dblaikie@gmail.com> | 2014-10-10 16:59:52 +0000 |
|---|---|---|
| committer | David Blaikie <dblaikie@gmail.com> | 2014-10-10 16:59:52 +0000 |
| commit | 7d6f29d1eed3bcbd716ac7502a71ee4792c2538d (patch) | |
| tree | 4417ecdec7a0f368c1fdc1f02ad0a5bcdac67586 /llvm | |
| parent | e6ccacf9b0a909c74129a4a56ab7b70d023a8acf (diff) | |
| download | bcm5719-llvm-7d6f29d1eed3bcbd716ac7502a71ee4792c2538d.tar.gz bcm5719-llvm-7d6f29d1eed3bcbd716ac7502a71ee4792c2538d.zip | |
Simplify a few uses of DwarfDebug::SPMap
llvm-svn: 219510
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 24 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h | 2 |
2 files changed, 4 insertions, 22 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index e9b93bba343..491681aafd2 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/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<DwarfCompileUnit *>(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/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h index 9e314eba992..069787a7015 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -174,7 +174,7 @@ class DwarfDebug : public AsmPrinterHandler { MapVector<const MDNode *, DwarfCompileUnit *> CUMap; // Maps subprogram MDNode with its corresponding DwarfCompileUnit. - DenseMap<const MDNode *, DwarfCompileUnit *> SPMap; + MapVector<const MDNode *, DwarfCompileUnit *> SPMap; // Maps a CU DIE with its corresponding DwarfCompileUnit. DenseMap<const DIE *, DwarfCompileUnit *> CUDieMap; |

