diff options
| author | David Blaikie <dblaikie@gmail.com> | 2014-03-11 23:23:39 +0000 |
|---|---|---|
| committer | David Blaikie <dblaikie@gmail.com> | 2014-03-11 23:23:39 +0000 |
| commit | 55bb8ac74ba9413f687497b38194ec73d4b83bbe (patch) | |
| tree | e178bc59b3931fad07297d89c913f8bc0df63900 | |
| parent | 0f55e833a64bb1e04346e6103131e1bce6ebc759 (diff) | |
| download | bcm5719-llvm-55bb8ac74ba9413f687497b38194ec73d4b83bbe.tar.gz bcm5719-llvm-55bb8ac74ba9413f687497b38194ec73d4b83bbe.zip | |
DebugInfo: Avoid re-looking up the DwarfUnit when emitting pubnames/pubtypes
llvm-svn: 203620
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
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<const DIE *> &(DwarfUnit::*Accessor)() const) { for (const auto &NU : CUMap) { DwarfCompileUnit *TheU = NU.second; + + const auto &Globals = (TheU->*Accessor)(); + if (auto Skeleton = static_cast<DwarfCompileUnit *>(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; |

