[llvm] r207057 - Remove the intermediate AccelObjC maps in DWARF units
David Blaikie
dblaikie at gmail.com
Wed Apr 23 17:53:32 PDT 2014
Author: dblaikie
Date: Wed Apr 23 19:53:32 2014
New Revision: 207057
URL: http://llvm.org/viewvc/llvm-project?rev=207057&view=rev
Log:
Remove the intermediate AccelObjC maps in DWARF units
Modified:
llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h
llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.h
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=207057&r1=207056&r2=207057&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Wed Apr 23 19:53:32 2014
@@ -170,7 +170,9 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Mo
UsedNonDefaultText(false),
SkeletonHolder(A, "skel_string", DIEValueAllocator),
AccelNames(DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset,
- dwarf::DW_FORM_data4)) {
+ dwarf::DW_FORM_data4)),
+ AccelObjC(DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset,
+ dwarf::DW_FORM_data4)) {
DwarfInfoSectionSym = DwarfAbbrevSectionSym = DwarfStrSectionSym = 0;
DwarfDebugRangeSectionSym = DwarfDebugLocSectionSym = DwarfLineSectionSym = 0;
@@ -277,9 +279,9 @@ void DwarfDebug::addSubprogramNames(Dwar
if (isObjCClass(SP.getName())) {
StringRef Class, Category;
getObjCClassCategory(SP.getName(), Class, Category);
- TheU.addAccelObjC(Class, Die);
+ addAccelObjC(Class, Die);
if (Category != "")
- TheU.addAccelObjC(Category, Die);
+ addAccelObjC(Category, Die);
// Also add the base method name to the name table.
addAccelName(getObjCMethodName(SP.getName()), Die);
}
@@ -1871,24 +1873,14 @@ void DwarfDebug::emitAccelNames() {
// Emit objective C classes and categories into a hashed accelerator table
// section.
void DwarfDebug::emitAccelObjC() {
- DwarfAccelTable AT(
- DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset, dwarf::DW_FORM_data4));
- for (const auto &TheU : getUnits()) {
- for (const auto &GI : TheU->getAccelObjC()) {
- StringRef Name = GI.getKey();
- for (const DIE *D : GI.second)
- AT.AddName(Name, D);
- }
- }
-
- AT.FinalizeTable(Asm, "ObjC");
+ AccelObjC.FinalizeTable(Asm, "ObjC");
Asm->OutStreamer.SwitchSection(
Asm->getObjFileLowering().getDwarfAccelObjCSection());
MCSymbol *SectionBegin = Asm->GetTempSymbol("objc_begin");
Asm->OutStreamer.EmitLabel(SectionBegin);
// Emit the full data.
- AT.Emit(Asm, SectionBegin, &InfoHolder);
+ AccelObjC.Emit(Asm, SectionBegin, &InfoHolder);
}
// Emit namespace dies into a hashed accelerator table.
@@ -2569,3 +2561,10 @@ void DwarfDebug::addAccelName(StringRef
InfoHolder.getStringPoolEntry(Name);
AccelNames.AddName(Name, Die);
}
+
+void DwarfDebug::addAccelObjC(StringRef Name, const DIE *Die) {
+ if (!useDwarfAccelTables())
+ return;
+ InfoHolder.getStringPoolEntry(Name);
+ AccelObjC.AddName(Name, Die);
+}
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h?rev=207057&r1=207056&r2=207057&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h Wed Apr 23 19:53:32 2014
@@ -325,6 +325,7 @@ class DwarfDebug : public AsmPrinterHand
AddressPool AddrPool;
DwarfAccelTable AccelNames;
+ DwarfAccelTable AccelObjC;
MCDwarfDwoLineTable *getDwoLineTable(const DwarfCompileUnit &);
@@ -642,6 +643,8 @@ public:
AddressPool &getAddressPool() { return AddrPool; }
void addAccelName(StringRef Name, const DIE *Die);
+
+ void addAccelObjC(StringRef Name, const DIE *Die);
};
} // End of namespace llvm
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp?rev=207057&r1=207056&r2=207057&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp Wed Apr 23 19:53:32 2014
@@ -1065,14 +1065,6 @@ void DwarfUnit::addType(DIE *Entity, DIT
addDIEEntry(Entity, Attribute, Entry);
}
-void DwarfUnit::addAccelObjC(StringRef Name, const DIE *Die) {
- if (!DD->useDwarfAccelTables())
- return;
- DU->getStringPoolEntry(Name);
- std::vector<const DIE *> &DIEs = AccelObjC[Name];
- DIEs.push_back(Die);
-}
-
void DwarfUnit::addAccelNamespace(StringRef Name, const DIE *Die) {
if (!DD->useDwarfAccelTables())
return;
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.h?rev=207057&r1=207056&r2=207057&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.h (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.h Wed Apr 23 19:53:32 2014
@@ -102,9 +102,6 @@ protected:
/// GlobalTypes - A map of globally visible types for this unit.
StringMap<const DIE *> GlobalTypes;
- /// AccelObjC - A map of objc spec for the objc accelerator table.
- StringMap<std::vector<const DIE *> > AccelObjC;
-
/// AccelNamespace - A map of names for the namespace accelerator table.
StringMap<std::vector<const DIE *> > AccelNamespace;
@@ -228,9 +225,6 @@ public:
const StringMap<const DIE *> &getGlobalNames() const { return GlobalNames; }
const StringMap<const DIE *> &getGlobalTypes() const { return GlobalTypes; }
- const StringMap<std::vector<const DIE *> > &getAccelObjC() const {
- return AccelObjC;
- }
const StringMap<std::vector<const DIE *> > &getAccelNamespace() const {
return AccelNamespace;
}
@@ -269,9 +263,6 @@ public:
///
void addGlobalName(StringRef Name, DIE *Die, DIScope Context);
- /// addAccelObjC - Add a new name to the ObjC accelerator table.
- void addAccelObjC(StringRef Name, const DIE *Die);
-
/// addAccelNamespace - Add a new name to the namespace accelerator table.
void addAccelNamespace(StringRef Name, const DIE *Die);
More information about the llvm-commits
mailing list