forked from OSchip/llvm-project
[DebugInfo] Add DwarfDebug& to DwarfFile.
Use the DwarfDebug in one function that previously took it as a parameter, and lay the foundation for use this for other operations coming soon. llvm-svn: 220452
This commit is contained in:
parent
263a008525
commit
2b22b1e9a2
|
@ -170,9 +170,10 @@ static LLVM_CONSTEXPR DwarfAccelTable::Atom TypeAtoms[] = {
|
|||
|
||||
DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
|
||||
: Asm(A), MMI(Asm->MMI), FirstCU(nullptr), PrevLabel(nullptr),
|
||||
GlobalRangeCount(0), InfoHolder(A, "info_string", DIEValueAllocator),
|
||||
GlobalRangeCount(0),
|
||||
InfoHolder(A, *this, "info_string", DIEValueAllocator),
|
||||
UsedNonDefaultText(false),
|
||||
SkeletonHolder(A, "skel_string", DIEValueAllocator),
|
||||
SkeletonHolder(A, *this, "skel_string", DIEValueAllocator),
|
||||
IsDarwin(Triple(A->getTargetTriple()).isOSDarwin()),
|
||||
AccelNames(DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset,
|
||||
dwarf::DW_FORM_data4)),
|
||||
|
@ -1522,7 +1523,7 @@ void DwarfDebug::emitDIE(DIE &Die) {
|
|||
void DwarfDebug::emitDebugInfo() {
|
||||
DwarfFile &Holder = useSplitDwarf() ? SkeletonHolder : InfoHolder;
|
||||
|
||||
Holder.emitUnits(this, DwarfAbbrevSectionSym);
|
||||
Holder.emitUnits(DwarfAbbrevSectionSym);
|
||||
}
|
||||
|
||||
// Emit the abbreviation section.
|
||||
|
@ -2165,7 +2166,7 @@ void DwarfDebug::emitDebugInfoDWO() {
|
|||
assert(useSplitDwarf() && "No split dwarf debug info?");
|
||||
// Don't pass an abbrev symbol, using a constant zero instead so as not to
|
||||
// emit relocations into the dwo file.
|
||||
InfoHolder.emitUnits(this, /* AbbrevSymbol */ nullptr);
|
||||
InfoHolder.emitUnits(/* AbbrevSymbol */ nullptr);
|
||||
}
|
||||
|
||||
// Emit the .debug_abbrev.dwo section for separated dwarf. This contains the
|
||||
|
|
|
@ -18,8 +18,11 @@
|
|||
#include "llvm/Target/TargetLoweringObjectFile.h"
|
||||
|
||||
namespace llvm {
|
||||
DwarfFile::DwarfFile(AsmPrinter *AP, StringRef Pref, BumpPtrAllocator &DA)
|
||||
: Asm(AP), StrPool(DA, *Asm, Pref) {}
|
||||
DwarfFile::DwarfFile(AsmPrinter *AP, DwarfDebug &DD, StringRef Pref,
|
||||
BumpPtrAllocator &DA)
|
||||
: Asm(AP), DD(DD), StrPool(DA, *Asm, Pref) {
|
||||
(void)this->DD;
|
||||
}
|
||||
|
||||
DwarfFile::~DwarfFile() {}
|
||||
|
||||
|
@ -48,7 +51,7 @@ void DwarfFile::addUnit(std::unique_ptr<DwarfUnit> U) {
|
|||
|
||||
// Emit the various dwarf units to the unit section USection with
|
||||
// the abbreviations going into ASection.
|
||||
void DwarfFile::emitUnits(DwarfDebug *DD, const MCSymbol *ASectionSym) {
|
||||
void DwarfFile::emitUnits(const MCSymbol *ASectionSym) {
|
||||
for (const auto &TheU : CUs) {
|
||||
DIE &Die = TheU->getUnitDie();
|
||||
const MCSection *USection = TheU->getSection();
|
||||
|
@ -63,7 +66,7 @@ void DwarfFile::emitUnits(DwarfDebug *DD, const MCSymbol *ASectionSym) {
|
|||
|
||||
TheU->emitHeader(ASectionSym);
|
||||
|
||||
DD->emitDIE(Die);
|
||||
DD.emitDIE(Die);
|
||||
Asm->OutStreamer.EmitLabel(TheU->getLabelEnd());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,6 +35,8 @@ class DwarfFile {
|
|||
// Target of Dwarf emission, used for sizing of abbreviations.
|
||||
AsmPrinter *Asm;
|
||||
|
||||
DwarfDebug ⅅ
|
||||
|
||||
// Used to uniquely define abbreviations.
|
||||
FoldingSet<DIEAbbrev> AbbreviationsSet;
|
||||
|
||||
|
@ -47,7 +49,8 @@ class DwarfFile {
|
|||
DwarfStringPool StrPool;
|
||||
|
||||
public:
|
||||
DwarfFile(AsmPrinter *AP, StringRef Pref, BumpPtrAllocator &DA);
|
||||
DwarfFile(AsmPrinter *AP, DwarfDebug &DD, StringRef Pref,
|
||||
BumpPtrAllocator &DA);
|
||||
|
||||
~DwarfFile();
|
||||
|
||||
|
@ -67,7 +70,7 @@ public:
|
|||
|
||||
/// \brief Emit all of the units to the section listed with the given
|
||||
/// abbreviation section.
|
||||
void emitUnits(DwarfDebug *DD, const MCSymbol *ASectionSym);
|
||||
void emitUnits(const MCSymbol *ASectionSym);
|
||||
|
||||
/// \brief Emit a set of abbreviations to the specific section.
|
||||
void emitAbbrevs(const MCSection *);
|
||||
|
|
Loading…
Reference in New Issue