And actually use the DwarfDebug::AccelNames to emit the names.
authorDavid Blaikie <dblaikie@gmail.com>
Wed, 23 Apr 2014 23:46:25 +0000 (23:46 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Wed, 23 Apr 2014 23:46:25 +0000 (23:46 +0000)
Fix for r207049 which would've emitted no accelerated names at all...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207051 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/CodeGen/AsmPrinter/DwarfUnit.h

index af771f6a82efd6b08eda23140517fac9a09002f0..b4ae7c517f7c7be0db5dc9df6fa350f27b9b44ca 100644 (file)
@@ -1858,24 +1858,14 @@ void DwarfDebug::emitEndOfLineMatrix(unsigned SectionEnd) {
 
 // Emit visible names into a hashed accelerator table section.
 void DwarfDebug::emitAccelNames() {
-  DwarfAccelTable AT(
-      DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset, dwarf::DW_FORM_data4));
-  for (const auto &TheU : getUnits()) {
-    for (const auto &GI : TheU->getAccelNames()) {
-      StringRef Name = GI.getKey();
-      for (const DIE *D : GI.second)
-        AT.AddName(Name, D);
-    }
-  }
-
-  AT.FinalizeTable(Asm, "Names");
+  AccelNames.FinalizeTable(Asm, "Names");
   Asm->OutStreamer.SwitchSection(
       Asm->getObjFileLowering().getDwarfAccelNamesSection());
   MCSymbol *SectionBegin = Asm->GetTempSymbol("names_begin");
   Asm->OutStreamer.EmitLabel(SectionBegin);
 
   // Emit the full data.
-  AT.Emit(Asm, SectionBegin, &InfoHolder);
+  AccelNames.Emit(Asm, SectionBegin, &InfoHolder);
 }
 
 // Emit objective C classes and categories into a hashed accelerator table
index d7086acd30ce0e3b616da47d22de746d72ed2b93..053bc334a9cd6d3e721fdf0fbdd9367ab8d79fbb 100644 (file)
@@ -102,9 +102,6 @@ protected:
   /// GlobalTypes - A map of globally visible types for this unit.
   StringMap<const DIE *> GlobalTypes;
 
-  /// AccelNames - A map of names for the name accelerator table.
-  StringMap<std::vector<const DIE *> > AccelNames;
-
   /// AccelObjC - A map of objc spec for the objc accelerator table.
   StringMap<std::vector<const DIE *> > AccelObjC;
 
@@ -231,9 +228,6 @@ public:
   const StringMap<const DIE *> &getGlobalNames() const { return GlobalNames; }
   const StringMap<const DIE *> &getGlobalTypes() const { return GlobalTypes; }
 
-  const StringMap<std::vector<const DIE *> > &getAccelNames() const {
-    return AccelNames;
-  }
   const StringMap<std::vector<const DIE *> > &getAccelObjC() const {
     return AccelObjC;
   }