mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 07:11:49 +00:00
Remove the intermediate AccelNamespace maps in DWARF units.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207059 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
96363d5001
commit
e33575f577
@ -172,7 +172,9 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
|
||||
AccelNames(DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset,
|
||||
dwarf::DW_FORM_data4)),
|
||||
AccelObjC(DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset,
|
||||
dwarf::DW_FORM_data4)) {
|
||||
dwarf::DW_FORM_data4)),
|
||||
AccelNamespace(DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset,
|
||||
dwarf::DW_FORM_data4)) {
|
||||
|
||||
DwarfInfoSectionSym = DwarfAbbrevSectionSym = DwarfStrSectionSym = 0;
|
||||
DwarfDebugRangeSectionSym = DwarfDebugLocSectionSym = DwarfLineSectionSym = 0;
|
||||
@ -1885,24 +1887,14 @@ void DwarfDebug::emitAccelObjC() {
|
||||
|
||||
// Emit namespace dies into a hashed accelerator table.
|
||||
void DwarfDebug::emitAccelNamespaces() {
|
||||
DwarfAccelTable AT(
|
||||
DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset, dwarf::DW_FORM_data4));
|
||||
for (const auto &TheU : getUnits()) {
|
||||
for (const auto &GI : TheU->getAccelNamespace()) {
|
||||
StringRef Name = GI.getKey();
|
||||
for (const DIE *D : GI.second)
|
||||
AT.AddName(Name, D);
|
||||
}
|
||||
}
|
||||
|
||||
AT.FinalizeTable(Asm, "namespac");
|
||||
AccelNamespace.FinalizeTable(Asm, "namespac");
|
||||
Asm->OutStreamer.SwitchSection(
|
||||
Asm->getObjFileLowering().getDwarfAccelNamespaceSection());
|
||||
MCSymbol *SectionBegin = Asm->GetTempSymbol("namespac_begin");
|
||||
Asm->OutStreamer.EmitLabel(SectionBegin);
|
||||
|
||||
// Emit the full data.
|
||||
AT.Emit(Asm, SectionBegin, &InfoHolder);
|
||||
AccelNamespace.Emit(Asm, SectionBegin, &InfoHolder);
|
||||
}
|
||||
|
||||
// Emit type dies into a hashed accelerator table.
|
||||
@ -2568,3 +2560,10 @@ void DwarfDebug::addAccelObjC(StringRef Name, const DIE *Die) {
|
||||
InfoHolder.getStringPoolEntry(Name);
|
||||
AccelObjC.AddName(Name, Die);
|
||||
}
|
||||
|
||||
void DwarfDebug::addAccelNamespace(StringRef Name, const DIE *Die) {
|
||||
if (!useDwarfAccelTables())
|
||||
return;
|
||||
InfoHolder.getStringPoolEntry(Name);
|
||||
AccelNamespace.AddName(Name, Die);
|
||||
}
|
||||
|
@ -326,6 +326,7 @@ class DwarfDebug : public AsmPrinterHandler {
|
||||
|
||||
DwarfAccelTable AccelNames;
|
||||
DwarfAccelTable AccelObjC;
|
||||
DwarfAccelTable AccelNamespace;
|
||||
|
||||
MCDwarfDwoLineTable *getDwoLineTable(const DwarfCompileUnit &);
|
||||
|
||||
@ -645,6 +646,8 @@ public:
|
||||
void addAccelName(StringRef Name, const DIE *Die);
|
||||
|
||||
void addAccelObjC(StringRef Name, const DIE *Die);
|
||||
|
||||
void addAccelNamespace(StringRef Name, const DIE *Die);
|
||||
};
|
||||
} // End of namespace llvm
|
||||
|
||||
|
@ -1065,14 +1065,6 @@ void DwarfUnit::addType(DIE *Entity, DIType Ty, dwarf::Attribute Attribute) {
|
||||
addDIEEntry(Entity, Attribute, Entry);
|
||||
}
|
||||
|
||||
void DwarfUnit::addAccelNamespace(StringRef Name, const DIE *Die) {
|
||||
if (!DD->useDwarfAccelTables())
|
||||
return;
|
||||
DU->getStringPoolEntry(Name);
|
||||
std::vector<const DIE *> &DIEs = AccelNamespace[Name];
|
||||
DIEs.push_back(Die);
|
||||
}
|
||||
|
||||
void DwarfUnit::addAccelType(StringRef Name,
|
||||
std::pair<const DIE *, unsigned> Die) {
|
||||
if (!DD->useDwarfAccelTables())
|
||||
@ -1415,10 +1407,10 @@ DIE *DwarfUnit::getOrCreateNameSpace(DINameSpace NS) {
|
||||
|
||||
if (!NS.getName().empty()) {
|
||||
addString(NDie, dwarf::DW_AT_name, NS.getName());
|
||||
addAccelNamespace(NS.getName(), NDie);
|
||||
DD->addAccelNamespace(NS.getName(), NDie);
|
||||
addGlobalName(NS.getName(), NDie, NS.getContext());
|
||||
} else
|
||||
addAccelNamespace("(anonymous namespace)", NDie);
|
||||
DD->addAccelNamespace("(anonymous namespace)", NDie);
|
||||
addSourceLine(NDie, NS);
|
||||
return NDie;
|
||||
}
|
||||
|
@ -102,9 +102,6 @@ protected:
|
||||
/// GlobalTypes - A map of globally visible types for this unit.
|
||||
StringMap<const DIE *> GlobalTypes;
|
||||
|
||||
/// AccelNamespace - A map of names for the namespace accelerator table.
|
||||
StringMap<std::vector<const DIE *> > AccelNamespace;
|
||||
|
||||
/// AccelTypes - A map of names for the type accelerator table.
|
||||
StringMap<std::vector<std::pair<const DIE *, unsigned> > > AccelTypes;
|
||||
|
||||
@ -225,9 +222,6 @@ public:
|
||||
const StringMap<const DIE *> &getGlobalNames() const { return GlobalNames; }
|
||||
const StringMap<const DIE *> &getGlobalTypes() const { return GlobalTypes; }
|
||||
|
||||
const StringMap<std::vector<const DIE *> > &getAccelNamespace() const {
|
||||
return AccelNamespace;
|
||||
}
|
||||
const StringMap<std::vector<std::pair<const DIE *, unsigned> > > &
|
||||
getAccelTypes() const {
|
||||
return AccelTypes;
|
||||
|
Loading…
Reference in New Issue
Block a user