mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-20 10:24:12 +00:00
Remove the intermediate AccelObjC maps in DWARF units
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207057 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -170,7 +170,9 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
|
||||
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(DwarfUnit &TheU, DISubprogram SP,
|
||||
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 Name, const DIE *Die) {
|
||||
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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user