|
LLVM 24.0.0git
|
A structured debug information entry. More...
#include "llvm/CodeGen/DIE.h"
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> |
Static Public Member Functions | |
| static DIE * | get (BumpPtrAllocator &Alloc, dwarf::Tag Tag) |
Friends | |
| class | IntrusiveBackList< DIE > |
| class | DIEUnit |
A structured debug information entry.
Has an abbreviation which describes its organization.
| using llvm::DIE::child_iterator = IntrusiveBackList<DIE>::iterator |
|
delete |
Referenced by get().
Add a child to the DIE.
Definition at line 958 of file DIE.h.
References assert(), and getParent().
Referenced by llvm::DwarfCompileUnit::constructCallSiteParmEntryDIEs(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), llvm::DwarfCompileUnit::constructInlinedScopeDIE(), llvm::DwarfCompileUnit::constructSubprogramScopeDIE(), llvm::DwarfUnit::createAndAddDIE(), llvm::DwarfCompileUnit::createAndAddScopeChildren(), llvm::DwarfCompileUnit::getOrCreateImportedEntityDIE(), and llvm::DwarfCompileUnit::getOrCreateLexicalBlockDIE().
Definition at line 965 of file DIE.h.
References assert(), and getParent().
Referenced by llvm::DwarfCompileUnit::createBaseTypeDIEs().
|
inline |
Definition at line 898 of file DIE.h.
References llvm::make_range().
Referenced by computeOffsetsAndAbbrevs(), llvm::AsmPrinter::emitDwarfDIE(), and print().
|
inline |
Definition at line 901 of file DIE.h.
References llvm::make_range().
| unsigned DIE::computeOffsetsAndAbbrevs | ( | const dwarf::FormParams & | FormParams, |
| DIEAbbrevSet & | AbbrevSet, | ||
| unsigned | CUOffset ) |
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.
| FormParams | Used when calculating sizes. |
| AbbrevSet | the abbreviation used to unique DIE abbreviations. |
| CUOffset | the compile/type unit relative offset in bytes. |
Definition at line 265 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().
| LLVM_DUMP_METHOD void DIE::dump | ( | ) | const |
Definition at line 260 of file DIE.cpp.
References llvm::dbgs(), LLVM_DUMP_METHOD, and print().
Referenced by dumpKeptDIE().
| DIEValue DIE::findAttribute | ( | dwarf::Attribute | Attribute | ) | const |
Find a value in the DIE with the attribute given.
Returns a default-constructed DIEValue (where DIEValue::getType() gives DIEValue::isNone) if no such attribute exists.
Definition at line 209 of file DIE.cpp.
References llvm::DIEValueList::values().
Referenced by llvm::DwarfCompileUnit::addLinkageNamesToDeclarations(), computeIndexValue(), and llvm::DWARF5AccelTableData::getDefiningParentDieOffset().
| DIEAbbrev DIE::generateAbbrev | ( | ) | const |
Generate the abbreviation for this DIE.
Calculate the abbreviation for this, which should be uniqued and eventually used to call setAbbrevNumber().
Definition at line 173 of file DIE.cpp.
References llvm::DIEAbbrev::AddAttribute(), llvm::DIEAbbrev::AddImplicitConstAttribute(), hasChildren(), and llvm::DIEValueList::values().
Referenced by llvm::DIEAbbrevSet::uniqueAbbreviation().
|
inlinestatic |
Definition at line 872 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::constructSubprogramScopeDIE(), llvm::DwarfCompileUnit::constructVariableDIE(), llvm::DwarfUnit::createAndAddDIE(), llvm::DwarfCompileUnit::createBaseTypeDIEs(), llvm::dwarf_linker::parallel::DIEGenerator::createDIE(), and llvm::DwarfCompileUnit::getOrCreateLexicalBlockDIE().
|
inline |
Definition at line 877 of file DIE.h.
Referenced by computeOffsetsAndAbbrevs(), llvm::dwarf_linker::parallel::TypeUnit::createDIETree(), and llvm::AsmPrinter::emitDwarfDIE().
| uint64_t DIE::getDebugSectionOffset | ( | ) | const |
|
inline |
Get the compile/type unit relative offset of this DIE.
Definition at line 880 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().
| DIE * DIE::getParent | ( | ) | const |
Definition at line 171 of file DIE.cpp.
References llvm::dyn_cast_if_present().
Referenced by addChild(), addChildFront(), llvm::DIEHash::computeTypeSignature(), and llvm::DWARF5AccelTableData::getDefiningParentDieOffset().
|
inline |
Definition at line 885 of file DIE.h.
References assert().
Referenced by llvm::dwarf_linker::classic::DwarfStreamer::emitDIE(), llvm::dwarf_linker::parallel::DwarfEmitterImpl::emitDIE(), llvm::AsmPrinter::emitDwarfDIE(), and llvm::DwarfCompileUnit::getLength().
|
inline |
Definition at line 878 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().
| DIEUnit * DIE::getUnit | ( | ) | const |
Climb up the parent chain to get the compile unit or type unit that this DIE belongs to.
Definition at line 202 of file DIE.cpp.
References DIEUnit, llvm::dyn_cast_if_present(), and getUnitDie().
Referenced by llvm::DwarfUnit::addDIEEntry(), getDebugSectionOffset(), llvm::DwarfUnit::getOrCreateStaticMemberDIE(), llvm::DwarfUnit::getOrCreateSubprogramDIE(), and llvm::DwarfUnit::getOrCreateTypeDIE().
|
inline |
Definition at line 890 of file DIE.h.
Referenced by computeOffsetsAndAbbrevs(), llvm::AsmPrinter::emitDwarfDIE(), generateAbbrev(), llvm::DwarfUnit::hasContent(), and print().
| LLVM_DUMP_METHOD void DIE::print | ( | raw_ostream & | O, |
| unsigned | IndentCount = 0 ) const |
Definition at line 235 of file DIE.cpp.
References llvm::dwarf::AttributeString(), children(), llvm::dwarf::ChildrenString(), llvm::format(), llvm::dwarf::FormEncodingString(), getTag(), hasChildren(), llvm::dwarf::TagString(), and llvm::DIEValueList::values().
Referenced by dump().
|
inline |
Set the abbreviation number for this DIE.
Definition at line 914 of file DIE.h.
References I.
Referenced by llvm::DIEAbbrevSet::uniqueAbbreviation().
|
inline |
|
inline |
Definition at line 954 of file DIE.h.
Referenced by computeOffsetsAndAbbrevs(), and llvm::dwarf_linker::parallel::TypeUnit::createDIETree().
|
inline |
Definition at line 955 of file DIE.h.
Referenced by computeOffsetsAndAbbrevs(), and llvm::dwarf_linker::parallel::TypeUnit::createDIETree().
|
friend |
|
friend |