LLVM 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
llvm::DwarfDebug Class Reference

Collects and handles dwarf debug information. More...

#include "CodeGen/AsmPrinter/DwarfDebug.h"

Inheritance diagram for llvm::DwarfDebug:
Inheritance graph
[legend]

Public Types

enum class  MinimizeAddrInV5 {
  Default , Disabled , Ranges , Expressions ,
  Form
}
 
enum class  DWARF5AccelTableKind { CU = 0 , TU = 1 }
 

Public Member Functions

 DwarfDebug (AsmPrinter *A)
 
 ~DwarfDebug () override
 
void beginModule (Module *M) override
 Emit all Dwarf sections that should come prior to the content.
 
void endModule () override
 Emit all Dwarf sections that should come after the content.
 
const MachineInstremitInitialLocDirective (const MachineFunction &MF, unsigned CUID)
 Emits inital debug location directive.
 
void beginInstruction (const MachineInstr *MI) override
 Process beginning of an instruction.
 
void beginCodeAlignment (const MachineBasicBlock &MBB) override
 Process beginning of code alignment.
 
void addDwarfTypeUnitType (DwarfCompileUnit &CU, StringRef Identifier, DIE &Die, const DICompositeType *CTy)
 Add a DIE to the set of types that we're going to pull into type units.
 
void addArangeLabel (SymbolCU SCU)
 Add a label so that arange data can be generated for it.
 
void setSymbolSize (const MCSymbol *Sym, uint64_t Size) override
 For symbols that have a size designated (e.g.
 
bool useAllLinkageNames () const
 Returns whether we should emit all DW_AT_[MIPS_]linkage_name.
 
bool useGNUTLSOpcode () const
 Returns whether to use DW_OP_GNU_push_tls_address, instead of the standard DW_OP_form_tls_address opcode.
 
bool useDWARF2Bitfields () const
 Returns whether to use the DWARF2 format for bitfields instyead of the DWARF4 format.
 
bool useInlineStrings () const
 Returns whether to use inline strings.
 
bool useRangesSection () const
 Returns whether ranges section should be emitted.
 
bool alwaysUseRanges (const DwarfCompileUnit &) const
 Returns whether range encodings should be used for single entry range lists.
 
bool useAddrOffsetExpressions () const
 
bool useAddrOffsetForm () const
 
bool useSectionsAsReferences () const
 Returns whether to use sections as labels rather than temp symbols.
 
bool generateTypeUnits () const
 Returns whether to generate DWARF v4 type units.
 
AccelTableKind getAccelTableKind () const
 Returns what kind (if any) of accelerator tables to emit.
 
void setTheAccelTableKind (AccelTableKind K)
 Seet TheAccelTableKind.
 
bool useAppleExtensionAttributes () const
 
bool useSplitDwarf () const
 Returns whether or not to change the current debug info for the split dwarf proposal support.
 
bool useSegmentedStringOffsetsTable () const
 Returns whether to generate a string offsets table with (possibly shared) contributions from each CU and type unit.
 
bool emitDebugEntryValues () const
 
bool useOpConvert () const
 
bool shareAcrossDWOCUs () const
 
uint16_t getDwarfVersion () const
 Returns the Dwarf Version.
 
dwarf::Form getDwarfSectionOffsetForm () const
 Returns a suitable DWARF form to represent a section offset, i.e.
 
const DwarfCompileUnitgetPrevCU () const
 Returns the previous CU that was being updated.
 
void setPrevCU (const DwarfCompileUnit *PrevCU)
 
void terminateLineTable (const DwarfCompileUnit *CU)
 Terminate the line table by adding the last range label.
 
const DebugLocStreamgetDebugLocs () const
 Returns the entries for the .debug_loc section.
 
void emitDebugLocEntry (ByteStreamer &Streamer, const DebugLocStream::Entry &Entry, const DwarfCompileUnit *CU)
 Emit an entry for the debug loc section.
 
void emitDebugLocEntryLocation (const DebugLocStream::Entry &Entry, const DwarfCompileUnit *CU)
 Emit the location for a debug loc entry, including the size header.
 
void addSubprogramNames (const DwarfUnit &Unit, const DICompileUnit::DebugNameTableKind NameTableKind, const DISubprogram *SP, DIE &Die)
 
AddressPoolgetAddressPool ()
 
void addAccelName (const DwarfUnit &Unit, const DICompileUnit::DebugNameTableKind NameTableKind, StringRef Name, const DIE &Die)
 
void addAccelObjC (const DwarfUnit &Unit, const DICompileUnit::DebugNameTableKind NameTableKind, StringRef Name, const DIE &Die)
 
void addAccelNamespace (const DwarfUnit &Unit, const DICompileUnit::DebugNameTableKind NameTableKind, StringRef Name, const DIE &Die)
 
void addAccelType (const DwarfUnit &Unit, const DICompileUnit::DebugNameTableKind NameTableKind, StringRef Name, const DIE &Die, char Flags)
 
const MachineFunctiongetCurrentFunction () const
 
bool isLexicalScopeDIENull (LexicalScope *Scope)
 A helper function to check whether the DIE for a given Scope is going to be null.
 
DwarfCompileUnitlookupCU (const DIE *Die)
 Find the matching DwarfCompileUnit for the given CU DIE.
 
const DwarfCompileUnitlookupCU (const DIE *Die) const
 
unsigned getStringTypeLoc (const DIStringType *ST) const
 
void addStringTypeLoc (const DIStringType *ST, unsigned Loc)
 
bool tuneForGDB () const
 
bool tuneForLLDB () const
 
bool tuneForSCE () const
 
bool tuneForDBX () const
 
const MCSymbolgetSectionLabel (const MCSection *S)
 
void insertSectionLabel (const MCSymbol *S)
 
std::optional< MD5::MD5ResultgetMD5AsBytes (const DIFile *File) const
 If the File has an MD5 checksum, return it as an MD5Result allocated in the MCContext.
 
MDNodeSetgetLocalDeclsForScope (const DILocalScope *S)
 
void setCurrentDWARF5AccelTable (const DWARF5AccelTableKind Kind)
 Sets the current DWARF5AccelTable to use.
 
DWARF5AccelTablegetCurrentDWARF5AccelTable ()
 Returns either CU or TU DWARF5AccelTable.
 
- Public Member Functions inherited from llvm::DebugHandlerBase
virtual ~DebugHandlerBase ()
 
virtual void setSymbolSize (const MCSymbol *Sym, uint64_t Size)
 For symbols that have a size designated (e.g.
 
virtual void beginModule (Module *M)
 
virtual void endModule ()=0
 
virtual void beginInstruction (const MachineInstr *MI)
 
virtual void endInstruction ()
 
void beginFunction (const MachineFunction *MF)
 
void endFunction (const MachineFunction *MF)
 
void beginBasicBlockSection (const MachineBasicBlock &MBB)
 
void endBasicBlockSection (const MachineBasicBlock &MBB)
 
virtual void beginCodeAlignment (const MachineBasicBlock &MBB)
 
MCSymbolgetLabelBeforeInsn (const MachineInstr *MI)
 Return Label preceding the instruction.
 
MCSymbolgetLabelAfterInsn (const MachineInstr *MI)
 Return Label immediately following the instruction.
 
const InstructionOrderinggetInstOrdering () const
 

Static Public Member Functions

static uint64_t makeTypeSignature (StringRef Identifier)
 Perform an MD5 checksum of Identifier and return the lower 64 bits.
 
static void emitDebugLocValue (const AsmPrinter &AP, const DIBasicType *BT, const DbgValueLoc &Value, DwarfExpression &DwarfExpr)
 
- Static Public Member Functions inherited from llvm::DebugHandlerBase
static uint64_t getBaseTypeSize (const DIType *Ty)
 If this type is derived from a base type then return base type size.
 
static bool isUnsignedDIType (const DIType *Ty)
 Return true if type encoding is unsigned.
 

Protected Member Functions

void beginFunctionImpl (const MachineFunction *MF) override
 Gather pre-function debug information.
 
void endFunctionImpl (const MachineFunction *MF) override
 Gather and emit post-function debug information.
 
unsigned getDwarfCompileUnitIDForLineTable (const DwarfCompileUnit &CU)
 Get Dwarf compile unit ID for line table.
 
void skippedNonDebugFunction () override
 
- Protected Member Functions inherited from llvm::DebugHandlerBase
 DebugHandlerBase (AsmPrinter *A)
 
void identifyScopeMarkers ()
 Indentify instructions that are marking the beginning of or ending of a scope.
 
void requestLabelBeforeInsn (const MachineInstr *MI)
 Ensure that a label will be emitted before MI.
 
void requestLabelAfterInsn (const MachineInstr *MI)
 Ensure that a label will be emitted after MI.
 
virtual void beginFunctionImpl (const MachineFunction *MF)=0
 
virtual void endFunctionImpl (const MachineFunction *MF)=0
 
virtual void skippedNonDebugFunction ()
 

Additional Inherited Members

- Protected Attributes inherited from llvm::DebugHandlerBase
AsmPrinterAsm = nullptr
 Target of debug info emission.
 
MachineModuleInfoMMI = nullptr
 Collected machine module information.
 
DebugLoc PrevInstLoc
 Previous instruction's location information.
 
MCSymbolPrevLabel = nullptr
 
const MachineBasicBlockPrevInstBB = nullptr
 
const MachineInstrPrologEndLoc
 This location indicates end of function prologue and beginning of function body.
 
const MachineBasicBlockEpilogBeginBlock = nullptr
 This block includes epilogue instructions.
 
const MachineInstrCurMI = nullptr
 If nonnull, stores the current machine instruction we're processing.
 
LexicalScopes LScopes
 
DbgValueHistoryMap DbgValues
 History of DBG_VALUE and clobber instructions for each user variable.
 
DbgLabelInstrMap DbgLabels
 Mapping of inlined labels and DBG_LABEL machine instruction.
 
DenseMap< const MachineInstr *, MCSymbol * > LabelsBeforeInsn
 Maps instruction with label emitted before instruction.
 
DenseMap< const MachineInstr *, MCSymbol * > LabelsAfterInsn
 Maps instruction with label emitted after instruction.
 

Detailed Description

Collects and handles dwarf debug information.

Definition at line 351 of file DwarfDebug.h.

Member Enumeration Documentation

◆ DWARF5AccelTableKind

Enumerator
CU 
TU 

Definition at line 461 of file DwarfDebug.h.

◆ MinimizeAddrInV5

Enumerator
Default 
Disabled 
Ranges 
Expressions 
Form 

Definition at line 453 of file DwarfDebug.h.

Constructor & Destructor Documentation

◆ DwarfDebug()

DwarfDebug::DwarfDebug ( AsmPrinter A)

◆ ~DwarfDebug()

DwarfDebug::~DwarfDebug ( )
overridedefault

Member Function Documentation

◆ addAccelName()

void DwarfDebug::addAccelName ( const DwarfUnit Unit,
const DICompileUnit::DebugNameTableKind  NameTableKind,
StringRef  Name,
const DIE Die 
)

◆ addAccelNamespace()

void DwarfDebug::addAccelNamespace ( const DwarfUnit Unit,
const DICompileUnit::DebugNameTableKind  NameTableKind,
StringRef  Name,
const DIE Die 
)

◆ addAccelObjC()

void DwarfDebug::addAccelObjC ( const DwarfUnit Unit,
const DICompileUnit::DebugNameTableKind  NameTableKind,
StringRef  Name,
const DIE Die 
)

Definition at line 3871 of file DwarfDebug.cpp.

References llvm::Apple, getAccelTableKind(), and Name.

Referenced by addSubprogramNames().

◆ addAccelType()

void DwarfDebug::addAccelType ( const DwarfUnit Unit,
const DICompileUnit::DebugNameTableKind  NameTableKind,
StringRef  Name,
const DIE Die,
char  Flags 
)

Definition at line 3887 of file DwarfDebug.cpp.

References Name.

◆ addArangeLabel()

void llvm::DwarfDebug::addArangeLabel ( SymbolCU  SCU)
inline

Add a label so that arange data can be generated for it.

Definition at line 751 of file DwarfDebug.h.

Referenced by llvm::DwarfCompileUnit::addLabelAddress(), llvm::DwarfCompileUnit::addLocationAttribute(), and endFunctionImpl().

◆ addDwarfTypeUnitType()

void DwarfDebug::addDwarfTypeUnitType ( DwarfCompileUnit CU,
StringRef  Identifier,
DIE Die,
const DICompositeType CTy 
)

◆ addStringTypeLoc()

void llvm::DwarfDebug::addStringTypeLoc ( const DIStringType ST,
unsigned  Loc 
)
inline

Definition at line 904 of file DwarfDebug.h.

References assert().

◆ addSubprogramNames()

void DwarfDebug::addSubprogramNames ( const DwarfUnit Unit,
const DICompileUnit::DebugNameTableKind  NameTableKind,
const DISubprogram SP,
DIE Die 
)

◆ alwaysUseRanges()

bool DwarfDebug::alwaysUseRanges ( const DwarfCompileUnit CU) const

Returns whether range encodings should be used for single entry range lists.

Definition at line 3935 of file DwarfDebug.cpp.

References Default, Ranges, and useSplitDwarf().

Referenced by llvm::DwarfCompileUnit::attachRangesOrLowHighPC().

◆ beginCodeAlignment()

void DwarfDebug::beginCodeAlignment ( const MachineBasicBlock MBB)
overridevirtual

◆ beginFunctionImpl()

void DwarfDebug::beginFunctionImpl ( const MachineFunction MF)
overrideprotectedvirtual

◆ beginInstruction()

void DwarfDebug::beginInstruction ( const MachineInstr MI)
overridevirtual

◆ beginModule()

void DwarfDebug::beginModule ( Module M)
overridevirtual

◆ emitDebugEntryValues()

bool llvm::DwarfDebug::emitDebugEntryValues ( ) const
inline

Definition at line 827 of file DwarfDebug.h.

◆ emitDebugLocEntry()

void DwarfDebug::emitDebugLocEntry ( ByteStreamer Streamer,
const DebugLocStream::Entry Entry,
const DwarfCompileUnit CU 
)

◆ emitDebugLocEntryLocation()

void DwarfDebug::emitDebugLocEntryLocation ( const DebugLocStream::Entry Entry,
const DwarfCompileUnit CU 
)

◆ emitDebugLocValue()

void DwarfDebug::emitDebugLocValue ( const AsmPrinter AP,
const DIBasicType BT,
const DbgValueLoc Value,
DwarfExpression DwarfExpr 
)
static

◆ emitInitialLocDirective()

const MachineInstr * DwarfDebug::emitInitialLocDirective ( const MachineFunction MF,
unsigned  CUID 
)

◆ endFunctionImpl()

void DwarfDebug::endFunctionImpl ( const MachineFunction MF)
overrideprotectedvirtual

◆ endModule()

void DwarfDebug::endModule ( )
overridevirtual

◆ generateTypeUnits()

bool llvm::DwarfDebug::generateTypeUnits ( ) const
inline

Returns whether to generate DWARF v4 type units.

Definition at line 799 of file DwarfDebug.h.

Referenced by llvm::DwarfUnit::createTypeDIE(), and llvm::DwarfUnit::isShareableAcrossCUs().

◆ getAccelTableKind()

AccelTableKind llvm::DwarfDebug::getAccelTableKind ( ) const
inline

Returns what kind (if any) of accelerator tables to emit.

Definition at line 804 of file DwarfDebug.h.

Referenced by addAccelObjC(), addDwarfTypeUnitType(), addSubprogramNames(), endModule(), and llvm::DwarfCompileUnit::hasDwarfPubSections().

◆ getAddressPool()

AddressPool & llvm::DwarfDebug::getAddressPool ( )
inline

◆ getCurrentDWARF5AccelTable()

DWARF5AccelTable & llvm::DwarfDebug::getCurrentDWARF5AccelTable ( )
inline

Returns either CU or TU DWARF5AccelTable.

Definition at line 946 of file DwarfDebug.h.

◆ getCurrentFunction()

const MachineFunction * llvm::DwarfDebug::getCurrentFunction ( ) const
inline

Definition at line 888 of file DwarfDebug.h.

Referenced by llvm::DwarfCompileUnit::updateSubprogramScopeDIE().

◆ getDebugLocs()

const DebugLocStream & llvm::DwarfDebug::getDebugLocs ( ) const
inline

Returns the entries for the .debug_loc section.

Definition at line 854 of file DwarfDebug.h.

Referenced by emitLocList(), emitLoclistsTableHeader(), and llvm::DIELocList::emitValue().

◆ getDwarfCompileUnitIDForLineTable()

unsigned DwarfDebug::getDwarfCompileUnitIDForLineTable ( const DwarfCompileUnit CU)
protected

Get Dwarf compile unit ID for line table.

Definition at line 2493 of file DwarfDebug.cpp.

References llvm::DebugHandlerBase::Asm, and llvm::AsmPrinter::OutStreamer.

Referenced by beginFunctionImpl(), and terminateLineTable().

◆ getDwarfSectionOffsetForm()

dwarf::Form DwarfDebug::getDwarfSectionOffsetForm ( ) const

Returns a suitable DWARF form to represent a section offset, i.e.

  • DW_FORM_sec_offset for DWARF version >= 4;
  • DW_FORM_data8 for 64-bit DWARFv3;
  • DW_FORM_data4 for 32-bit DWARFv3 and DWARFv2.

Definition at line 3898 of file DwarfDebug.cpp.

References llvm::DebugHandlerBase::Asm, assert(), llvm::AsmPrinter::getDwarfVersion(), and llvm::AsmPrinter::isDwarf64().

Referenced by llvm::DwarfCompileUnit::addLocationList(), llvm::DwarfUnit::addSectionDelta(), llvm::DwarfUnit::addSectionLabel(), and llvm::DwarfUnit::addSectionOffset().

◆ getDwarfVersion()

uint16_t DwarfDebug::getDwarfVersion ( ) const

◆ getLocalDeclsForScope()

MDNodeSet & llvm::DwarfDebug::getLocalDeclsForScope ( const DILocalScope S)
inline

Definition at line 931 of file DwarfDebug.h.

Referenced by llvm::DwarfCompileUnit::createAndAddScopeChildren().

◆ getMD5AsBytes()

std::optional< MD5::MD5Result > DwarfDebug::getMD5AsBytes ( const DIFile File) const

If the File has an MD5 checksum, return it as an MD5Result allocated in the MCContext.

Definition at line 3918 of file DwarfDebug.cpp.

References assert(), llvm::DIFile::CSK_MD5, and getDwarfVersion().

Referenced by llvm::DwarfCompileUnit::getOrCreateSourceID().

◆ getPrevCU()

const DwarfCompileUnit * llvm::DwarfDebug::getPrevCU ( ) const
inline

Returns the previous CU that was being updated.

Definition at line 847 of file DwarfDebug.h.

Referenced by llvm::DwarfCompileUnit::addRange().

◆ getSectionLabel()

const MCSymbol * DwarfDebug::getSectionLabel ( const MCSection S)

◆ getStringTypeLoc()

unsigned llvm::DwarfDebug::getStringTypeLoc ( const DIStringType ST) const
inline

◆ insertSectionLabel()

void DwarfDebug::insertSectionLabel ( const MCSymbol S)

◆ isLexicalScopeDIENull()

bool DwarfDebug::isLexicalScopeDIENull ( LexicalScope Scope)

A helper function to check whether the DIE for a given Scope is going to be null.

Check whether we should create a DIE for the given Scope, return true if we don't create a DIE (the corresponding DIE is null).

Definition at line 514 of file DwarfDebug.cpp.

References llvm::DebugHandlerBase::getLabelAfterInsn(), and Ranges.

Referenced by llvm::DwarfCompileUnit::constructLexicalScopeDIE(), and llvm::DwarfCompileUnit::constructScopeDIE().

◆ lookupCU() [1/2]

DwarfCompileUnit * llvm::DwarfDebug::lookupCU ( const DIE Die)
inline

◆ lookupCU() [2/2]

const DwarfCompileUnit * llvm::DwarfDebug::lookupCU ( const DIE Die) const
inline

◆ makeTypeSignature()

uint64_t DwarfDebug::makeTypeSignature ( StringRef  Identifier)
static

Perform an MD5 checksum of Identifier and return the lower 64 bits.

Definition at line 3696 of file DwarfDebug.cpp.

References llvm::MD5::final(), and llvm::MD5::update().

Referenced by addDwarfTypeUnitType().

◆ setCurrentDWARF5AccelTable()

void llvm::DwarfDebug::setCurrentDWARF5AccelTable ( const DWARF5AccelTableKind  Kind)
inline

Sets the current DWARF5AccelTable to use.

Definition at line 936 of file DwarfDebug.h.

References CU, and TU.

Referenced by addDwarfTypeUnitType().

◆ setPrevCU()

void llvm::DwarfDebug::setPrevCU ( const DwarfCompileUnit PrevCU)
inline

Definition at line 848 of file DwarfDebug.h.

Referenced by llvm::DwarfCompileUnit::addRange().

◆ setSymbolSize()

void llvm::DwarfDebug::setSymbolSize ( const MCSymbol Sym,
uint64_t  Size 
)
inlineoverridevirtual

For symbols that have a size designated (e.g.

common symbols), this tracks that size.

Reimplemented from llvm::DebugHandlerBase.

Definition at line 755 of file DwarfDebug.h.

References Size, and Sym.

◆ setTheAccelTableKind()

void llvm::DwarfDebug::setTheAccelTableKind ( AccelTableKind  K)
inline

Seet TheAccelTableKind.

Definition at line 807 of file DwarfDebug.h.

◆ shareAcrossDWOCUs()

bool DwarfDebug::shareAcrossDWOCUs ( ) const

◆ skippedNonDebugFunction()

void DwarfDebug::skippedNonDebugFunction ( )
overrideprotectedvirtual

Reimplemented from llvm::DebugHandlerBase.

Definition at line 2513 of file DwarfDebug.cpp.

References terminateLineTable().

◆ terminateLineTable()

void DwarfDebug::terminateLineTable ( const DwarfCompileUnit CU)

Terminate the line table by adding the last range label.

Definition at line 2504 of file DwarfDebug.cpp.

References llvm::DebugHandlerBase::Asm, getDwarfCompileUnitIDForLineTable(), and llvm::AsmPrinter::OutStreamer.

Referenced by llvm::DwarfCompileUnit::addRange(), endModule(), and skippedNonDebugFunction().

◆ useAddrOffsetExpressions()

bool llvm::DwarfDebug::useAddrOffsetExpressions ( ) const
inline

◆ useAddrOffsetForm()

bool llvm::DwarfDebug::useAddrOffsetForm ( ) const
inline

Definition at line 789 of file DwarfDebug.h.

References Form.

Referenced by llvm::DwarfCompileUnit::addLabelAddress(), and llvm::DwarfUnit::addPoolOpAddress().

◆ useAllLinkageNames()

bool llvm::DwarfDebug::useAllLinkageNames ( ) const
inline

Returns whether we should emit all DW_AT_[MIPS_]linkage_name.

If not, we still might emit certain cases.

Definition at line 761 of file DwarfDebug.h.

Referenced by llvm::DwarfCompileUnit::addLocationAttribute(), addSubprogramNames(), and llvm::DwarfUnit::applySubprogramDefinitionAttributes().

◆ useAppleExtensionAttributes()

bool llvm::DwarfDebug::useAppleExtensionAttributes ( ) const
inline

◆ useDWARF2Bitfields()

bool llvm::DwarfDebug::useDWARF2Bitfields ( ) const
inline

Returns whether to use the DWARF2 format for bitfields instyead of the DWARF4 format.

Definition at line 769 of file DwarfDebug.h.

◆ useGNUTLSOpcode()

bool llvm::DwarfDebug::useGNUTLSOpcode ( ) const
inline

Returns whether to use DW_OP_GNU_push_tls_address, instead of the standard DW_OP_form_tls_address opcode.

Definition at line 765 of file DwarfDebug.h.

Referenced by llvm::DwarfCompileUnit::addLocationAttribute().

◆ useInlineStrings()

bool llvm::DwarfDebug::useInlineStrings ( ) const
inline

Returns whether to use inline strings.

Definition at line 772 of file DwarfDebug.h.

Referenced by llvm::DwarfUnit::addString().

◆ useOpConvert()

bool llvm::DwarfDebug::useOpConvert ( ) const
inline

Definition at line 831 of file DwarfDebug.h.

◆ useRangesSection()

bool llvm::DwarfDebug::useRangesSection ( ) const
inline

Returns whether ranges section should be emitted.

Definition at line 775 of file DwarfDebug.h.

Referenced by llvm::DwarfCompileUnit::attachRangesOrLowHighPC().

◆ useSectionsAsReferences()

bool llvm::DwarfDebug::useSectionsAsReferences ( ) const
inline

Returns whether to use sections as labels rather than temp symbols.

Definition at line 794 of file DwarfDebug.h.

Referenced by llvm::DwarfUnit::emitCommonHeader(), llvm::DwarfCompileUnit::emitHeader(), and llvm::DwarfCompileUnit::initStmtList().

◆ useSegmentedStringOffsetsTable()

bool llvm::DwarfDebug::useSegmentedStringOffsetsTable ( ) const
inline

Returns whether to generate a string offsets table with (possibly shared) contributions from each CU and type unit.

This implies the use of DW_FORM_strx* indirect references with DWARF v5 and beyond. Note that DW_FORM_GNU_str_index is also an indirect reference, but it is used with a pre-DWARF v5 implementation of split DWARF sections, which uses a monolithic string offsets table.

Definition at line 823 of file DwarfDebug.h.

Referenced by addDwarfTypeUnitType(), beginModule(), and llvm::DwarfUnit::useSegmentedStringOffsetsTable().

◆ useSplitDwarf()

bool llvm::DwarfDebug::useSplitDwarf ( ) const
inline

The documentation for this class was generated from the following files: