[llvm] r220452 - [DebugInfo] Add DwarfDebug& to DwarfFile.

Frédéric Riss friss at apple.com
Wed Oct 22 18:28:50 PDT 2014


> On 22 Oct 2014, at 17:16, David Blaikie <dblaikie at gmail.com> wrote:
> 
> Author: dblaikie
> Date: Wed Oct 22 19:16:03 2014
> New Revision: 220452
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=220452&view=rev
> Log:
> [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.
> 
> Modified:
>    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.cpp
>    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.h
> 
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=220452&r1=220451&r2=220452&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Wed Oct 22 19:16:03 2014
> @@ -170,9 +170,10 @@ static LLVM_CONSTEXPR DwarfAccelTable::A
> 
> 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
> 
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.cpp?rev=220452&r1=220451&r2=220452&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.cpp Wed Oct 22 19:16:03 2014
> @@ -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;

Is this last line in any way necessary?

Fred

> +}
> 
> DwarfFile::~DwarfFile() {}
> 
> @@ -48,7 +51,7 @@ void DwarfFile::addUnit(std::unique_ptr<
> 
> // 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
> 
>     TheU->emitHeader(ASectionSym);
> 
> -    DD->emitDIE(Die);
> +    DD.emitDIE(Die);
>     Asm->OutStreamer.EmitLabel(TheU->getLabelEnd());
>   }
> }
> 
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.h?rev=220452&r1=220451&r2=220452&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.h (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.h Wed Oct 22 19:16:03 2014
> @@ -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 *);
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list