From 55bb8ac74ba9413f687497b38194ec73d4b83bbe Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Tue, 11 Mar 2014 23:23:39 +0000 Subject: DebugInfo: Avoid re-looking up the DwarfUnit when emitting pubnames/pubtypes llvm-svn: 203620 --- llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'llvm') diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 93cd89e77a2..45a90dc12d7 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -2212,6 +2212,9 @@ void DwarfDebug::emitDebugPubSection( const StringMap &(DwarfUnit::*Accessor)() const) { for (const auto &NU : CUMap) { DwarfCompileUnit *TheU = NU.second; + + const auto &Globals = (TheU->*Accessor)(); + if (auto Skeleton = static_cast(TheU->getSkeleton())) TheU = Skeleton; unsigned ID = TheU->getUniqueID(); @@ -2237,7 +2240,7 @@ void DwarfDebug::emitDebugPubSection( Asm->EmitLabelDifference(TheU->getLabelEnd(), TheU->getLabelBegin(), 4); // Emit the pubnames for this compilation unit. - for (const auto &GI : (getUnits()[ID]->*Accessor)()) { + for (const auto &GI : Globals) { const char *Name = GI.getKeyData(); const DIE *Entity = GI.second; -- cgit v1.2.3