LLVM: llvm::DIE Class Reference (original) (raw)

A structured debug information entry. More...

#include "[llvm/CodeGen/DIE.h](DIE%5F8h%5Fsource.html)"

Public Types
using child_iterator = IntrusiveBackList<DIE>::iterator
using const_child_iterator = IntrusiveBackList<DIE>::const_iterator
using child_range = iterator_range<child_iterator>
using const_child_range = iterator_range<const_child_iterator>
Public Types inherited from llvm::DIEValueList
using value_range = iterator_range<value_iterator>
using const_value_range = iterator_range<const_value_iterator>
Public Member Functions
DIE ()=delete
DIE (const DIE &RHS)=delete
DIE (DIE &&RHS)=delete
DIE & operator= (const DIE &RHS)=delete
DIE & operator= (const DIE &&RHS)=delete
unsigned getAbbrevNumber () const
dwarf::Tag getTag () const
unsigned getOffset () const
Get the compile/type unit relative offset of this DIE.
unsigned getSize () const
bool hasChildren () const
void setForceChildren (bool B)
child_range children ()
const_child_range children () const
LLVM_ABI DIE * getParent () const
LLVM_ABI DIEAbbrev generateAbbrev () const
Generate the abbreviation for this DIE.
void setAbbrevNumber (unsigned I)
Set the abbreviation number for this DIE.
LLVM_ABI uint64_t getDebugSectionOffset () const
Get the absolute offset within the .debug_info or .debug_types section for this DIE.
LLVM_ABI unsigned computeOffsetsAndAbbrevs (const dwarf::FormParams &FormParams, DIEAbbrevSet &AbbrevSet, unsigned CUOffset)
Compute the offset of this DIE and all its children.
LLVM_ABI const DIE * getUnitDie () const
Climb up the parent chain to get the compile unit or type unit DIE that this DIE belongs to.
LLVM_ABI DIEUnit * getUnit () const
Climb up the parent chain to get the compile unit or type unit that this DIE belongs to.
void setOffset (unsigned O)
void setSize (unsigned S)
DIE & addChild (DIE *Child)
Add a child to the DIE.
DIE & addChildFront (DIE *Child)
LLVM_ABI DIEValue findAttribute (dwarf::Attribute Attribute) const
Find a value in the DIE with the attribute given.
LLVM_ABI void print (raw_ostream &O, unsigned IndentCount=0) const
LLVM_ABI void dump () const
Public Member Functions inherited from llvm::DIEValueList
value_iterator addValue (BumpPtrAllocator &Alloc, const DIEValue &V)
template<class T>
value_iterator addValue (BumpPtrAllocator &Alloc, dwarf::Attribute Attribute, dwarf::Form Form, T &&Value)
template<class T>
bool replaceValue (BumpPtrAllocator &Alloc, dwarf::Attribute Attribute, dwarf::Attribute NewAttribute, dwarf::Form Form, T &&NewValue)
template<class T>
bool replaceValue (BumpPtrAllocator &Alloc, dwarf::Attribute Attribute, dwarf::Form Form, T &&NewValue)
bool replaceValue (BumpPtrAllocator &Alloc, dwarf::Attribute Attribute, dwarf::Form Form, DIEValue &NewValue)
bool deleteValue (dwarf::Attribute Attribute)
void takeValues (DIEValueList &Other)
Take ownership of the nodes in Other, and append them to the back of the list.
value_range values ()
const_value_range values () const
Friends
class IntrusiveBackList< DIE >
class DIEUnit

A structured debug information entry.

Has an abbreviation which describes its organization.

Definition at line 828 of file DIE.h.

child_iterator

child_range

const_child_iterator

const_child_range

DIE() [1/3]

llvm::DIE::DIE ( ) delete

DIE() [2/3]

llvm::DIE::DIE ( const DIE & RHS) delete

References RHS.

DIE() [3/3]

llvm::DIE::DIE ( DIE && RHS) delete

References RHS.

addChild()

DIE & llvm::DIE::addChild ( DIE * Child) inline

addChildFront()

DIE & llvm::DIE::addChildFront ( DIE * Child) inline

children() [1/2]

child_range llvm::DIE::children ( ) inline

children() [2/2]

const_child_range llvm::DIE::children ( ) const inline

computeOffsetsAndAbbrevs()

Compute the offset of this DIE and all its children.

This function gets called just before we are going to generate the debug information and gives each DIE a chance to figure out its CU relative DIE offset, unique its abbreviation and fill in the abbreviation code, and return the unit offset that points to where the next DIE will be emitted within the debug unit section. After this function has been called for all DIE objects, the DWARF can be generated since all DIEs will be able to properly refer to other DIE objects since all DIEs have calculated their offsets.

Parameters

FormParams Used when calculating sizes.
AbbrevSet the abbreviation used to unique DIE abbreviations.
CUOffset the compile/type unit relative offset in bytes.

Returns

the offset for the DIE that follows this DIE within the current compile/type unit.

Definition at line 266 of file DIE.cpp.

References assert(), children(), getAbbrevNumber(), getOffset(), llvm::getULEB128Size(), hasChildren(), llvm::DIEAbbrev::hasChildren(), setOffset(), setSize(), llvm::DIEAbbrevSet::uniqueAbbreviation(), and llvm::DIEValueList::values().

Referenced by llvm::DwarfFile::computeSizeAndOffset().

dump()

findAttribute()

generateAbbrev()

get()

Definition at line 858 of file DIE.h.

References llvm::Alloc, and DIE().

Referenced by llvm::DwarfCompileUnit::constructCallSiteParmEntryDIEs(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), llvm::DwarfCompileUnit::constructInlinedScopeDIE(), llvm::DwarfCompileUnit::constructLabelDIE(), llvm::DwarfCompileUnit::constructLexicalScopeDIE(), llvm::DwarfCompileUnit::constructSubprogramScopeDIE(), llvm::DwarfCompileUnit::constructVariableDIE(), llvm::DwarfUnit::createAndAddDIE(), llvm::DwarfCompileUnit::createBaseTypeDIEs(), and llvm::dwarf_linker::parallel::DIEGenerator::createDIE().

getAbbrevNumber()

unsigned llvm::DIE::getAbbrevNumber ( ) const inline

getDebugSectionOffset()

uint64_t DIE::getDebugSectionOffset ( ) const

getOffset()

unsigned llvm::DIE::getOffset ( ) const inline

Get the compile/type unit relative offset of this DIE.

Definition at line 866 of file DIE.h.

References assert().

Referenced by llvm::dwarf_linker::parallel::OutputSections::applyPatches(), computeOffsetsAndAbbrevs(), llvm::dwarf_linker::parallel::TypeUnit::createDIETree(), llvm::AsmPrinter::emitDwarfDIE(), llvm::dwarf_linker::classic::CompileUnit::fixupForwardReferences(), getDebugSectionOffset(), llvm::DWARFUnit::getDIEIndexForOffset(), llvm::dwarf_linker::AddressesMap::getVariableRelocAdjustment(), llvm::dwarf_linker::parallel::AcceleratorRecordsSaver::saveNameRecord(), llvm::dwarf_linker::parallel::AcceleratorRecordsSaver::saveNamespaceRecord(), llvm::dwarf_linker::parallel::AcceleratorRecordsSaver::saveObjCNameRecord(), and llvm::dwarf_linker::parallel::AcceleratorRecordsSaver::saveTypeRecord().

getParent()

DIE * DIE::getParent ( ) const

getSize()

unsigned llvm::DIE::getSize ( ) const inline

getTag()

Definition at line 864 of file DIE.h.

Referenced by computeIndexValue(), llvm::DwarfUnit::constructTypeDIE(), llvm::AsmPrinter::emitDwarfDIE(), llvm::dwarf_linker::classic::DeclContextTree::getChildDeclContext(), llvm::DWARFContext::getDIEsForAddress(), getNames(), llvm::DwarfUnit::getOrCreateStaticMemberDIE(), llvm::dwarf_linker::AddressesMap::getVariableRelocAdjustment(), llvm::dwarf_linker::parallel::DependencyTracker::isLiveSubprogramEntry(), llvm::dwarf_linker::classic::CompileUnit::markEverythingAsKept(), llvm::dwarf_linker::classic::CompileUnit::noteRangeAttribute(), and print().

getUnit()

getUnitDie()

Climb up the parent chain to get the compile unit or type unit DIE that this DIE belongs to.

Returns

the compile or type unit DIE that owns this DIE, or NULL if this DIE hasn't been added to a unit DIE.

Definition at line 191 of file DIE.cpp.

Referenced by getUnit().

hasChildren()

bool llvm::DIE::hasChildren ( ) const inline

operator=() [1/2]

operator=() [2/2]

print()

setAbbrevNumber()

void llvm::DIE::setAbbrevNumber ( unsigned I) inline

setForceChildren()

void llvm::DIE::setForceChildren ( bool B) inline

setOffset()

void llvm::DIE::setOffset ( unsigned O) inline

setSize()

void llvm::DIE::setSize ( unsigned S) inline

DIEUnit

IntrusiveBackList< DIE >


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