|
LLVM 24.0.0git
|
This dwarf writer support class manages information associated with a source file. More...
#include "CodeGen/AsmPrinter/DwarfUnit.h"
Public Member Functions | |
| unsigned | getUniqueID () const |
| Gets Unique ID for this unit. | |
| AsmPrinter * | getAsmPrinter () const |
| MCSymbol * | getLabelBegin () const |
| Get the the symbol for start of the section for this unit. | |
| MCSymbol * | getEndLabel () const |
| llvm::dwarf::SourceLanguage | getSourceLanguage () const |
| const DICompileUnit * | getCUNode () const |
| DwarfDebug & | getDwarfDebug () const |
| std::string | getParentContextString (const DIScope *Context) const |
| Get string containing language specific context for a global name. | |
| virtual void | addGlobalName (StringRef Name, const DIE &Die, const DIScope *Context)=0 |
| Add a new global name to the compile unit. | |
| virtual void | addGlobalTypeImpl (const DIType *Ty, const DIE &Die, const DIScope *Context)=0 |
| Add a new global type to the compile unit. | |
| void | addGlobalType (const DIType *Ty, const DIE &Die, const DIScope *Context) |
| DIE * | getDIE (const DINode *D) const |
| Returns the DIE map slot for the specified debug variable. | |
| DIELoc * | getDIELoc () |
| Returns a fresh newly allocated DIELoc. | |
| void | insertDIE (const DINode *Desc, DIE *D) |
| Insert DIE into the map. | |
| void | insertDIE (DIE *D) |
| void | addFlag (DIE &Die, dwarf::Attribute Attribute) |
| Add a flag that is true to the DIE. | |
| void | addUInt (DIEValueList &Die, dwarf::Attribute Attribute, std::optional< dwarf::Form > Form, uint64_t Integer) |
| Add an unsigned integer attribute data and value. | |
| void | addUInt (DIEValueList &Block, dwarf::Form Form, uint64_t Integer) |
| void | addSInt (DIEValueList &Die, dwarf::Attribute Attribute, std::optional< dwarf::Form > Form, int64_t Integer) |
| Add an signed integer attribute data and value. | |
| void | addSInt (DIEValueList &Die, std::optional< dwarf::Form > Form, int64_t Integer) |
| void | addInt (DIE &Die, dwarf::Attribute Attribute, const APInt &Integer, bool Unsigned) |
| Add an integer attribute data and value; value may be any width. | |
| void | addString (DIE &Die, dwarf::Attribute Attribute, StringRef Str) |
| Add a string attribute data and value. | |
| void | addLabel (DIEValueList &Die, dwarf::Attribute Attribute, dwarf::Form Form, const MCSymbol *Label) |
| Add a Dwarf label attribute data and value. | |
| void | addLabel (DIELoc &Die, dwarf::Form Form, const MCSymbol *Label) |
| void | addSectionOffset (DIE &Die, dwarf::Attribute Attribute, uint64_t Integer) |
| Add an offset into a section attribute data and value. | |
| void | addOpAddress (DIELoc &Die, const MCSymbol *Sym) |
| Add a dwarf op address data and value using the form given and an op of either DW_FORM_addr or DW_FORM_GNU_addr_index. | |
| void | addPoolOpAddress (DIEValueList &Die, const MCSymbol *Label) |
| void | addLabelDelta (DIEValueList &Die, dwarf::Attribute Attribute, const MCSymbol *Hi, const MCSymbol *Lo) |
| Add a label delta attribute data and value. | |
| void | addDIEEntry (DIE &Die, dwarf::Attribute Attribute, DIE &Entry) |
| Add a DIE attribute data and value. | |
| void | addDIEEntry (DIE &Die, dwarf::Attribute Attribute, DIEEntry Entry) |
| Add a DIE attribute data and value. | |
| void | addDIETypeSignature (DIE &Die, uint64_t Signature) |
| Add a type's DW_AT_signature and set the declaration flag. | |
| void | addBlock (DIE &Die, dwarf::Attribute Attribute, DIELoc *Loc) |
| Add block data. | |
| void | addBlock (DIE &Die, dwarf::Attribute Attribute, DIEBlock *Block) |
| Add block data. | |
| void | addBlock (DIE &Die, dwarf::Attribute Attribute, dwarf::Form Form, DIEBlock *Block) |
| void | addBlock (DIE &Die, dwarf::Attribute Attribute, const DIExpression *Expr) |
| Add an expression as block data. | |
| void | addSourceLine (DIE &Die, unsigned Line, unsigned Column, const DIFile *File) |
| Add location information to specified debug information entry. | |
| void | addSourceLine (DIE &Die, const DILocalVariable *V) |
| void | addSourceLine (DIE &Die, const DIGlobalVariable *G) |
| void | addSourceLine (DIE &Die, const DISubprogram *SP) |
| void | addSourceLine (DIE &Die, const DILabel *L) |
| void | addSourceLine (DIE &Die, const DIType *Ty) |
| void | addSourceLine (DIE &Die, const DIObjCProperty *Ty) |
| void | addSourceLine (DIE &Die, const DIProperty *P) |
| void | addConstantValue (DIE &Die, const ConstantInt *CI, const DIType *Ty) |
| Add constant value entry in variable DIE. | |
| void | addConstantValue (DIE &Die, const APInt &Val, const DIType *Ty) |
| void | addConstantValue (DIE &Die, const APInt &Val, bool Unsigned) |
| void | addConstantValue (DIE &Die, uint64_t Val, const DIType *Ty) |
| void | addConstantValue (DIE &Die, bool Unsigned, uint64_t Val) |
| void | addConstantFPValue (DIE &Die, const ConstantFP *CFP) |
| Add constant value entry in variable DIE. | |
| void | addLinkageName (DIE &Die, StringRef LinkageName) |
| Add a linkage name, if it isn't empty. | |
| void | addTemplateParams (DIE &Buffer, DINodeArray TParams) |
| Add template parameters in buffer. | |
| void | addThrownTypes (DIE &Die, DINodeArray ThrownTypes) |
| Add thrown types. | |
| void | addAccess (DIE &Die, DINode::DIFlags Flags) |
| Add the accessibility attribute. | |
| void | addType (DIE &Entity, const DIType *Ty, dwarf::Attribute Attribute=dwarf::DW_AT_type) |
| Add a new type attribute to the specified entity. | |
| DIE * | getOrCreateNameSpace (const DINamespace *NS) |
| DIE * | getOrCreateModule (const DIModule *M) |
| virtual DIE * | getOrCreateSubprogramDIE (const DISubprogram *SP, const Function *FnHint, bool Minimal=false) |
| void | applySubprogramAttributes (const DISubprogram *SP, DIE &SPDie, bool SkipSPAttributes=false) |
| DIE * | createTypeDIE (const DIScope *Context, DIE &ContextDIE, const DIType *Ty) |
| Creates type DIE with specific context. | |
| virtual DIE * | getOrCreateTypeDIE (const MDNode *TyNode) |
| Find existing DIE or create new DIE for the given type. | |
| virtual DIE * | getOrCreateContextDIE (const DIScope *Context) |
| Get context owner's DIE. | |
| void | constructContainingTypeDIEs () |
| Construct DIEs for types that contain vtables. | |
| void | constructPropertyForwardDIEs () |
| std::optional< unsigned > | constructSubprogramArguments (DIE &Buffer, DITypeArray Args) |
| Construct function argument DIEs. | |
| DIE & | createAndAddDIE (dwarf::Tag Tag, DIE &Parent, const DINode *N=nullptr) |
| Create a DIE with the given Tag, add the DIE to its parent, and call insertDIE if MD is not null. | |
| bool | useSegmentedStringOffsetsTable () const |
| virtual unsigned | getHeaderSize () const |
| Compute the size of a header for this unit, not including the initial length field. | |
| virtual void | emitHeader (bool UseOffsets)=0 |
| Emit the header for this unit, not including the initial length field. | |
| void | addStringOffsetsStart () |
| Add the DW_AT_str_offsets_base attribute to the unit DIE. | |
| void | addRnglistsBase () |
| Add the DW_AT_rnglists_base attribute to the unit DIE. | |
| virtual DwarfCompileUnit & | getCU ()=0 |
| void | constructTypeDIE (DIE &Buffer, const DICompositeType *CTy) |
| void | addSectionLabel (DIE &Die, dwarf::Attribute Attribute, const MCSymbol *Label, const MCSymbol *Sec) |
| Add a Dwarf section label attribute data and value. | |
| void | addAnnotation (DIE &Buffer, DINodeArray Annotations) |
| Add DW_TAG_LLVM_annotation. | |
| DIE * | createTypeDIE (const DICompositeType *Ty) |
| Get context owner's DIE. | |
| void | updateAcceleratorTables (const DIScope *Context, const DIType *Ty, const DIE &TyDIE) |
| If this is a named finished type then include it in the list of types for the accelerator tables. | |
| Public Member Functions inherited from llvm::DIEUnit | |
| LLVM_ABI | DIEUnit (dwarf::Tag UnitTag) |
| DIEUnit (const DIEUnit &RHS)=delete | |
| DIEUnit (DIEUnit &&RHS)=delete | |
| void | operator= (const DIEUnit &RHS)=delete |
| void | operator= (const DIEUnit &&RHS)=delete |
| void | setSection (MCSection *Section) |
| Set the section that this DIEUnit will be emitted into. | |
| MCSection * | getSection () const |
| Return the section that this DIEUnit will be emitted into. | |
| void | setDebugSectionOffset (uint64_t O) |
| uint64_t | getDebugSectionOffset () const |
| DIE & | getUnitDie () |
| const DIE & | getUnitDie () const |
Protected Member Functions | |
| DwarfUnit (dwarf::Tag, const DICompileUnit *Node, AsmPrinter *A, DwarfDebug *DW, DwarfFile *DWU, unsigned UniqueID=0) | |
| bool | applySubprogramDefinitionAttributes (const DISubprogram *SP, DIE &SPDie, bool Minimal) |
| bool | isShareableAcrossCUs (const DINode *D) const |
| Check whether the DIE for this MDNode can be shared across CUs. | |
| template<typename T> | |
| void | addAttribute (DIEValueList &Die, dwarf::Attribute Attribute, dwarf::Form Form, T &&Value) |
| ~DwarfUnit () override | |
| DIE * | getOrCreateStaticMemberDIE (const DIDerivedType *DT) |
| Create new static data member DIE. | |
| virtual unsigned | getOrCreateSourceID (const DIFile *File)=0 |
| Look up the source ID for the given file. | |
| void | emitCommonHeader (bool UseOffsets, dwarf::UnitType UT) |
| Emit the common part of the header for this unit. | |
| bool | shouldPlaceInUnitDIE (const DISubprogram *SP, bool Minimal) |
| DIE * | getOrCreateSubprogramContextDIE (const DISubprogram *SP, bool IgnoreScope) |
| Protected Member Functions inherited from llvm::DIEUnit | |
| virtual | ~DIEUnit ()=default |
| .debug_info or .debug_types absolute section offset. | |
Protected Attributes | |
| unsigned | UniqueID |
| A numeric ID unique among all CUs in the module. | |
| const DICompileUnit * | CUNode |
| MDNode for the compile unit. | |
| BumpPtrAllocator | DIEValueAllocator |
| AsmPrinter * | Asm |
| Target of Dwarf emission. | |
| MCSymbol * | LabelBegin = nullptr |
| The start of the unit within its section. | |
| MCSymbol * | EndLabel = nullptr |
| Emitted at the end of the CU and used to compute the CU Length field. | |
| DwarfDebug * | DD |
| DwarfFile * | DU |
| DIE * | IndexTyDie = nullptr |
| An anonymous type for index type. Owned by DIEUnit. | |
| DenseMap< const MDNode *, DIE * > | MDNodeToDieMap |
| Tracks the mapping of unit level debug information variables to debug information entries. | |
| std::vector< DIEBlock * > | DIEBlocks |
| A list of all the DIEBlocks in use. | |
| std::vector< DIELoc * > | DIELocs |
| A list of all the DIELocs in use. | |
| DenseMap< DIE *, const DINode * > | ContainingTypeMap |
| This map is used to keep track of subprogram DIEs that need DW_AT_containing_type attribute. | |
| DenseMap< DIE *, const DINode * > | PropertyForwardMap |
This dwarf writer support class manages information associated with a source file.
Definition at line 36 of file DwarfUnit.h.
|
protected |
Definition at line 86 of file DwarfUnit.cpp.
References A(), Asm, CUNode, DD, llvm::DIEUnit::DIEUnit(), DU, and UniqueID.
Referenced by addDIEEntry(), llvm::DwarfCompileUnit::DwarfCompileUnit(), llvm::DwarfTypeUnit::DwarfTypeUnit(), getOrCreateStaticMemberDIE(), getOrCreateSubprogramDIE(), and getOrCreateTypeDIE().
|
overrideprotected |
Definition at line 98 of file DwarfUnit.cpp.
| void DwarfUnit::addAccess | ( | DIE & | Die, |
| DINode::DIFlags | Flags ) |
Add the accessibility attribute.
Definition at line 585 of file DwarfUnit.cpp.
References addUInt(), llvm::dwarf::DW_ACCESS_private, llvm::dwarf::DW_ACCESS_protected, llvm::dwarf::DW_ACCESS_public, and llvm::DINode::FlagAccessibility.
Referenced by applySubprogramAttributes(), constructTypeDIE(), and getOrCreateStaticMemberDIE().
| void DwarfUnit::addAnnotation | ( | DIE & | Buffer, |
| DINodeArray | Annotations ) |
Add DW_TAG_LLVM_annotation.
Definition at line 998 of file DwarfUnit.cpp.
References addConstantValue(), addString(), assert(), llvm::cast(), createAndAddDIE(), llvm::Data, llvm::dyn_cast(), and llvm::MDNode::getOperand().
Referenced by llvm::DwarfCompileUnit::applyCommonDbgVariableAttributes(), applySubprogramAttributes(), constructTypeDIE(), and llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE().
|
inlineprotected |
Definition at line 86 of file DwarfUnit.h.
References Asm, llvm::dwarf::AttributeVersion(), DD, DIEValueAllocator, and T.
Referenced by llvm::DwarfCompileUnit::addBaseTypeRef(), addBlock(), addBlock(), addDIEEntry(), addDIETypeSignature(), llvm::DwarfCompileUnit::addExpr(), addFlag(), addLabel(), llvm::DwarfCompileUnit::addLabelAddress(), addLabelDelta(), llvm::DwarfCompileUnit::addLocalLabelAddress(), llvm::DwarfCompileUnit::addLocationList(), addSInt(), addString(), and addUInt().
| void DwarfUnit::addBlock | ( | DIE & | Die, |
| dwarf::Attribute | Attribute, | ||
| const DIExpression * | Expr ) |
Add an expression as block data.
Definition at line 459 of file DwarfUnit.cpp.
References addBlock(), llvm::DwarfExpression::addExpression(), Asm, DIEValueAllocator, llvm::DIEDwarfExpression::finalize(), getCU(), and llvm::DwarfExpression::setMemoryLocationKind().
| void DwarfUnit::addBlock | ( | DIE & | Die, |
| dwarf::Attribute | Attribute, | ||
| DIEBlock * | Block ) |
Add block data.
Definition at line 454 of file DwarfUnit.cpp.
References addBlock(), and llvm::Block.
| void DwarfUnit::addBlock | ( | DIE & | Die, |
| dwarf::Attribute | Attribute, | ||
| DIELoc * | Loc ) |
Add block data.
Definition at line 441 of file DwarfUnit.cpp.
References addAttribute(), Asm, DD, and DIELocs.
Referenced by addBlock(), addBlock(), llvm::DwarfCompileUnit::addComplexAddress(), llvm::DwarfCompileUnit::addLabelAddress(), llvm::DwarfCompileUnit::addLocationAttribute(), applySubprogramAttributes(), llvm::DwarfCompileUnit::constructCallSiteParmEntryDIEs(), constructTypeDIE(), getOrCreateStaticMemberDIE(), and llvm::DwarfCompileUnit::updateSubprogramScopeDIE().
| void DwarfUnit::addBlock | ( | DIE & | Die, |
| dwarf::Attribute | Attribute, | ||
| dwarf::Form | Form, | ||
| DIEBlock * | Block ) |
Definition at line 447 of file DwarfUnit.cpp.
References addAttribute(), Asm, llvm::Block, and DIEBlocks.
| void DwarfUnit::addConstantFPValue | ( | DIE & | Die, |
| const ConstantFP * | CFP ) |
Add constant value entry in variable DIE.
Definition at line 523 of file DwarfUnit.cpp.
References addConstantValue(), llvm::APFloat::bitcastToAPInt(), and llvm::ConstantFP::getValueAPF().
Referenced by getOrCreateStaticMemberDIE().
Definition at line 537 of file DwarfUnit.cpp.
References addUInt(), and llvm::Unsigned.
Definition at line 548 of file DwarfUnit.cpp.
References addConstantValue(), llvm::APInt::getBitWidth(), llvm::APInt::getSExtValue(), llvm::APInt::getZExtValue(), and llvm::Unsigned.
Definition at line 544 of file DwarfUnit.cpp.
References addConstantValue(), and DD.
| void DwarfUnit::addConstantValue | ( | DIE & | Die, |
| const ConstantInt * | CI, | ||
| const DIType * | Ty ) |
Add constant value entry in variable DIE.
Definition at line 528 of file DwarfUnit.cpp.
References addConstantValue(), and llvm::ConstantInt::getValue().
Referenced by addAnnotation(), addConstantFPValue(), addConstantValue(), addConstantValue(), addConstantValue(), addConstantValue(), llvm::DwarfCompileUnit::addLocationAttribute(), and getOrCreateStaticMemberDIE().
Definition at line 533 of file DwarfUnit.cpp.
References addConstantValue(), and DD.
| void DwarfUnit::addDIEEntry | ( | DIE & | Die, |
| dwarf::Attribute | Attribute, | ||
| DIE & | Entry ) |
Add a DIE attribute data and value.
Definition at line 403 of file DwarfUnit.cpp.
References addDIEEntry().
Referenced by addDIEEntry(), addType(), applySubprogramDefinitionAttributes(), llvm::DwarfCompileUnit::attachLexicalScopesAbstractOrigins(), llvm::DwarfCompileUnit::constructAbstractSubprogramScopeDIE(), llvm::DwarfCompileUnit::constructCallSiteEntryDIE(), constructContainingTypeDIEs(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), llvm::DwarfCompileUnit::constructInlinedScopeDIE(), constructPropertyForwardDIEs(), llvm::DwarfCompileUnit::constructSubprogramScopeDIE(), constructTypeDIE(), llvm::DwarfCompileUnit::finishEntityDefinition(), llvm::DwarfCompileUnit::finishSubprogramDefinition(), and llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE().
| void DwarfUnit::addDIEEntry | ( | DIE & | Die, |
| dwarf::Attribute | Attribute, | ||
| DIEEntry | Entry ) |
Add a DIE attribute data and value.
Definition at line 418 of file DwarfUnit.cpp.
References addAttribute(), assert(), DD, llvm::DIEUnit::DIEUnit(), DwarfUnit(), llvm::DIE::getUnit(), and llvm::DIEUnit::getUnitDie().
Add a type's DW_AT_signature and set the declaration flag.
Definition at line 407 of file DwarfUnit.cpp.
References addAttribute(), and addFlag().
| void DwarfUnit::addFlag | ( | DIE & | Die, |
| dwarf::Attribute | Attribute ) |
Add a flag that is true to the DIE.
Definition at line 224 of file DwarfUnit.cpp.
References addAttribute(), and DD.
Referenced by addDIETypeSignature(), llvm::DwarfCompileUnit::applyCommonDbgVariableAttributes(), llvm::DwarfCompileUnit::applyLabelAttributes(), applySubprogramAttributes(), llvm::DwarfCompileUnit::constructCallSiteEntryDIE(), constructSubprogramArguments(), constructTypeDIE(), llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE(), getOrCreateModule(), getOrCreateNameSpace(), getOrCreateStaticMemberDIE(), and llvm::DwarfCompileUnit::updateSubprogramScopeDIE().
|
pure virtual |
Add a new global name to the compile unit.
Implemented in llvm::DwarfCompileUnit, and llvm::DwarfTypeUnit.
Referenced by getOrCreateModule(), and getOrCreateNameSpace().
Definition at line 723 of file DwarfUnit.cpp.
References addGlobalTypeImpl(), and llvm::isa().
Referenced by createTypeDIE(), and updateAcceleratorTables().
|
pure virtual |
Add a new global type to the compile unit.
Implemented in llvm::DwarfCompileUnit, and llvm::DwarfTypeUnit.
References D().
Referenced by addGlobalType().
| void DwarfUnit::addInt | ( | DIE & | Die, |
| dwarf::Attribute | Attribute, | ||
| const APInt & | Integer, | ||
| bool | Unsigned ) |
Add an integer attribute data and value; value may be any width.
Definition at line 271 of file DwarfUnit.cpp.
References addSInt(), addUInt(), llvm::APInt::getBitWidth(), llvm::APInt::getSExtValue(), llvm::APInt::getZExtValue(), and llvm::Unsigned.
| void DwarfUnit::addLabel | ( | DIELoc & | Die, |
| dwarf::Form | Form, | ||
| const MCSymbol * | Label ) |
Definition at line 335 of file DwarfUnit.cpp.
References addLabel().
| void DwarfUnit::addLabel | ( | DIEValueList & | Die, |
| dwarf::Attribute | Attribute, | ||
| dwarf::Form | Form, | ||
| const MCSymbol * | Label ) |
Add a Dwarf label attribute data and value.
Definition at line 330 of file DwarfUnit.cpp.
References addAttribute().
Referenced by addLabel(), addOpAddress(), and addSectionLabel().
| void DwarfUnit::addLabelDelta | ( | DIEValueList & | Die, |
| dwarf::Attribute | Attribute, | ||
| const MCSymbol * | Hi, | ||
| const MCSymbol * | Lo ) |
Add a label delta attribute data and value.
Definition at line 397 of file DwarfUnit.cpp.
References addAttribute(), DIEValueAllocator, llvm::Hi, and llvm::Lo.
Referenced by addPoolOpAddress(), and llvm::DwarfCompileUnit::attachLowHighPC().
Add a linkage name, if it isn't empty.
Definition at line 559 of file DwarfUnit.cpp.
References addString(), DD, llvm::GlobalValue::dropLLVMManglingEscape(), and llvm::LinkageName.
Referenced by llvm::DwarfCompileUnit::addLinkageNamesToDeclarations(), llvm::DwarfCompileUnit::addLocationAttribute(), and applySubprogramDefinitionAttributes().
Add a dwarf op address data and value using the form given and an op of either DW_FORM_addr or DW_FORM_GNU_addr_index.
Definition at line 382 of file DwarfUnit.cpp.
References addLabel(), addPoolOpAddress(), addUInt(), and DD.
Referenced by llvm::DwarfCompileUnit::addLocationAttribute().
| void DwarfUnit::addPoolOpAddress | ( | DIEValueList & | Die, |
| const MCSymbol * | Label ) |
Definition at line 357 of file DwarfUnit.cpp.
References addLabelDelta(), addUInt(), llvm::sampleprof::Base, and DD.
Referenced by llvm::DwarfCompileUnit::addLabelAddress(), and addOpAddress().
| void DwarfUnit::addRnglistsBase | ( | ) |
Add the DW_AT_rnglists_base attribute to the unit DIE.
Definition at line 2209 of file DwarfUnit.cpp.
References addSectionLabel(), Asm, assert(), DD, DU, llvm::MCSection::getBeginSymbol(), llvm::MCObjectFileInfo::getDwarfRnglistsSection(), and llvm::DIEUnit::getUnitDie().
| void DwarfUnit::addSectionLabel | ( | DIE & | Die, |
| dwarf::Attribute | Attribute, | ||
| const MCSymbol * | Label, | ||
| const MCSymbol * | Sec ) |
Add a Dwarf section label attribute data and value.
If the current unit is a DWO, this function will instead emit a section delta.
Definition at line 2168 of file DwarfUnit.cpp.
References addLabel(), Asm, and DD.
Referenced by llvm::DwarfCompileUnit::addAddrTableBase(), addRnglistsBase(), llvm::DwarfCompileUnit::addScopeRangeList(), addStringOffsetsStart(), llvm::DwarfCompileUnit::applyStmtList(), llvm::DwarfCompileUnit::initStmtList(), and llvm::DwarfCompileUnit::updateSubprogramScopeDIE().
| void DwarfUnit::addSectionOffset | ( | DIE & | Die, |
| dwarf::Attribute | Attribute, | ||
| uint64_t | Integer ) |
Add an offset into a section attribute data and value.
Definition at line 339 of file DwarfUnit.cpp.
References addUInt(), DD, and llvm::Integer.
| void DwarfUnit::addSInt | ( | DIEValueList & | Die, |
| dwarf::Attribute | Attribute, | ||
| std::optional< dwarf::Form > | Form, | ||
| int64_t | Integer ) |
Add an signed integer attribute data and value.
Definition at line 285 of file DwarfUnit.cpp.
References addAttribute(), llvm::DIEInteger::BestForm(), and llvm::Integer.
Referenced by addInt(), llvm::DwarfCompileUnit::addLocationAttribute(), addSInt(), applySubprogramAttributes(), and llvm::DwarfCompileUnit::updateSubprogramScopeDIE().
| void DwarfUnit::addSInt | ( | DIEValueList & | Die, |
| std::optional< dwarf::Form > | Form, | ||
| int64_t | Integer ) |
Definition at line 292 of file DwarfUnit.cpp.
References addSInt(), and llvm::Integer.
| void DwarfUnit::addSourceLine | ( | DIE & | Die, |
| const DIGlobalVariable * | G ) |
Definition at line 487 of file DwarfUnit.cpp.
References addSourceLine(), assert(), and G.
Definition at line 499 of file DwarfUnit.cpp.
References addSourceLine(), and assert().
| void DwarfUnit::addSourceLine | ( | DIE & | Die, |
| const DILocalVariable * | V ) |
Definition at line 481 of file DwarfUnit.cpp.
References addSourceLine(), and assert().
| void DwarfUnit::addSourceLine | ( | DIE & | Die, |
| const DIObjCProperty * | Ty ) |
Definition at line 511 of file DwarfUnit.cpp.
References addSourceLine(), and assert().
| void DwarfUnit::addSourceLine | ( | DIE & | Die, |
| const DIProperty * | P ) |
Definition at line 517 of file DwarfUnit.cpp.
References addSourceLine(), assert(), and P.
| void DwarfUnit::addSourceLine | ( | DIE & | Die, |
| const DISubprogram * | SP ) |
Definition at line 493 of file DwarfUnit.cpp.
References addSourceLine(), and assert().
Definition at line 505 of file DwarfUnit.cpp.
References addSourceLine(), and assert().
Add location information to specified debug information entry.
Definition at line 468 of file DwarfUnit.cpp.
References addUInt(), and getOrCreateSourceID().
Referenced by addSourceLine(), addSourceLine(), addSourceLine(), addSourceLine(), addSourceLine(), addSourceLine(), addSourceLine(), llvm::DwarfCompileUnit::applyCommonDbgVariableAttributes(), llvm::DwarfCompileUnit::applyLabelAttributes(), applySubprogramAttributes(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), constructTypeDIE(), llvm::DwarfCompileUnit::getOrCreateCommonBlock(), llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE(), and getOrCreateStaticMemberDIE().
| void DwarfUnit::addString | ( | DIE & | Die, |
| dwarf::Attribute | Attribute, | ||
| StringRef | Str ) |
Add a string attribute data and value.
We always emit a reference to the string pool instead of immediate strings so that DIEs have more predictable sizes. In the case of split dwarf we emit an index into another table which gets us the static offset into the string table.
Definition at line 297 of file DwarfUnit.cpp.
References addAttribute(), Asm, CUNode, DD, DIEValueAllocator, DU, llvm::String, and useSegmentedStringOffsetsTable().
Referenced by addAnnotation(), llvm::DwarfDebug::addDwarfTypeUnitType(), addLinkageName(), llvm::DwarfCompileUnit::applyCommonDbgVariableAttributes(), llvm::DwarfCompileUnit::applyLabelAttributes(), applySubprogramAttributes(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), constructTypeDIE(), llvm::DwarfCompileUnit::createBaseTypeDIEs(), llvm::DwarfCompileUnit::getOrCreateCommonBlock(), llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE(), getOrCreateModule(), getOrCreateNameSpace(), and getOrCreateStaticMemberDIE().
| void DwarfUnit::addStringOffsetsStart | ( | ) |
Add the DW_AT_str_offsets_base attribute to the unit DIE.
Definition at line 2202 of file DwarfUnit.cpp.
References addSectionLabel(), Asm, DU, llvm::MCSection::getBeginSymbol(), llvm::MCObjectFileInfo::getDwarfStrOffSection(), and llvm::DIEUnit::getUnitDie().
Referenced by llvm::DwarfDebug::addDwarfTypeUnitType().
| void DwarfUnit::addTemplateParams | ( | DIE & | Buffer, |
| DINodeArray | TParams ) |
Add template parameters in buffer.
Definition at line 567 of file DwarfUnit.cpp.
References llvm::dyn_cast().
Referenced by applySubprogramDefinitionAttributes(), constructTypeDIE(), and llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE().
| void DwarfUnit::addThrownTypes | ( | DIE & | Die, |
| DINodeArray | ThrownTypes ) |
Add thrown types.
Definition at line 578 of file DwarfUnit.cpp.
References addType(), llvm::cast(), and createAndAddDIE().
Referenced by applySubprogramAttributes().
| void DwarfUnit::addType | ( | DIE & | Entity, |
| const DIType * | Ty, | ||
| dwarf::Attribute | Attribute = dwarf::DW_AT_type ) |
Add a new type attribute to the specified entity.
This takes and attribute parameter because DW_AT_friend attributes are also type references.
Definition at line 730 of file DwarfUnit.cpp.
References addDIEEntry(), assert(), and getOrCreateTypeDIE().
Referenced by addThrownTypes(), llvm::DwarfCompileUnit::applyCommonDbgVariableAttributes(), applySubprogramAttributes(), applySubprogramDefinitionAttributes(), llvm::DwarfCompileUnit::constructCallSiteEntryDIE(), constructSubprogramArguments(), constructTypeDIE(), llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE(), and getOrCreateStaticMemberDIE().
| void DwarfUnit::addUInt | ( | DIEValueList & | Block, |
| dwarf::Form | Form, | ||
| uint64_t | Integer ) |
Definition at line 240 of file DwarfUnit.cpp.
References addUInt(), llvm::Block, and llvm::Integer.
| void DwarfUnit::addUInt | ( | DIEValueList & | Die, |
| dwarf::Attribute | Attribute, | ||
| std::optional< dwarf::Form > | Form, | ||
| uint64_t | Integer ) |
Add an unsigned integer attribute data and value.
Definition at line 231 of file DwarfUnit.cpp.
References addAttribute(), assert(), llvm::DIEInteger::BestForm(), and llvm::Integer.
Referenced by addAccess(), llvm::DwarfCompileUnit::addComplexAddress(), addConstantValue(), llvm::DwarfDebug::addDwarfTypeUnitType(), addInt(), llvm::DwarfCompileUnit::addLocationAttribute(), addOpAddress(), addPoolOpAddress(), llvm::DwarfCompileUnit::addScopeRangeList(), addSectionOffset(), addSourceLine(), addUInt(), llvm::DwarfCompileUnit::applyCommonDbgVariableAttributes(), llvm::DwarfCompileUnit::applyLabelAttributes(), applySubprogramAttributes(), applySubprogramDefinitionAttributes(), llvm::DwarfCompileUnit::constructInlinedScopeDIE(), constructTypeDIE(), llvm::DwarfCompileUnit::createBaseTypeDIEs(), llvm::NVPTXDwarfDebug::finishTargetUnitAttributes(), llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE(), getOrCreateModule(), getOrCreateStaticMemberDIE(), and llvm::DwarfCompileUnit::updateSubprogramScopeDIE().
| void DwarfUnit::applySubprogramAttributes | ( | const DISubprogram * | SP, |
| DIE & | SPDie, | ||
| bool | SkipSPAttributes = false ) |
Definition at line 1468 of file DwarfUnit.cpp.
References addAccess(), addAnnotation(), addBlock(), addFlag(), addSInt(), addSourceLine(), addString(), addThrownTypes(), addType(), addUInt(), applySubprogramDefinitionAttributes(), Asm, assert(), llvm::Block, constructSubprogramArguments(), ContainingTypeMap, CUNode, DD, getDIELoc(), getDwarfDebug(), getDwarfVersion(), getSourceLanguage(), llvm::isa(), and llvm::dwarf::isC().
Referenced by llvm::DwarfCompileUnit::applySubprogramAttributesToDefinition().
|
protected |
Definition at line 1417 of file DwarfUnit.cpp.
References addDIEEntry(), addLinkageName(), addTemplateParams(), addType(), addUInt(), assert(), DD, DU, getDIE(), getOrCreateSourceID(), and llvm::LinkageName.
Referenced by applySubprogramAttributes().
| void DwarfUnit::constructContainingTypeDIEs | ( | ) |
Construct DIEs for types that contain vtables.
Definition at line 1858 of file DwarfUnit.cpp.
References addDIEEntry(), ContainingTypeMap, D(), getDIE(), and P.
| void DwarfUnit::constructPropertyForwardDIEs | ( | ) |
Definition at line 2040 of file DwarfUnit.cpp.
References addDIEEntry(), getDIE(), P, and PropertyForwardMap.
| std::optional< unsigned > DwarfUnit::constructSubprogramArguments | ( | DIE & | Buffer, |
| DITypeArray | Args ) |
Construct function argument DIEs.
Args if one exists. Returns std::nullopt otherwise. Definition at line 943 of file DwarfUnit.cpp.
References addFlag(), addType(), assert(), createAndAddDIE(), and N.
Referenced by applySubprogramAttributes().
| void DwarfUnit::constructTypeDIE | ( | DIE & | Buffer, |
| const DICompositeType * | CTy ) |
Definition at line 1056 of file DwarfUnit.cpp.
References addAccess(), addAnnotation(), addBlock(), addDIEEntry(), addFlag(), addSourceLine(), addString(), addTemplateParams(), addType(), addUInt(), Asm, constructTypeDIE(), createAndAddDIE(), DD, llvm::dyn_cast(), llvm::dyn_cast_or_null(), llvm::StringRef::empty(), llvm::DIType::getAlignInBytes(), llvm::DICompositeType::getAnnotations(), getCU(), getDIE(), llvm::DICompositeType::getDiscriminator(), llvm::DICompositeType::getElements(), llvm::DIType::getExportSymbols(), llvm::DIType::getFlags(), llvm::DICompositeType::getIdentifier(), llvm::DIType::getName(), llvm::DIType::getNumExtraInhabitants(), getOrCreateContextDIE(), getOrCreateStaticMemberDIE(), getOrCreateSubprogramDIE(), getOrCreateTypeDIE(), llvm::DICompositeType::getRawIdentifier(), llvm::DIType::getRawSizeInBits(), llvm::DICompositeType::getRuntimeLang(), llvm::DIType::getSizeInBits(), llvm::DICompositeType::getSpecification(), llvm::DIE::getTag(), llvm::DICompositeType::getTemplateParams(), llvm::DICompositeType::getVTableHolder(), llvm::DIType::isAppleBlockExtension(), llvm::DIType::isForwardDecl(), llvm::DICompositeType::isNameSimplified(), llvm::DIType::isObjcClassComplete(), llvm::DIType::isTypePassByReference(), llvm::DIType::isTypePassByValue(), Size, and llvm::Tag.
Referenced by constructTypeDIE(), createTypeDIE(), and createTypeDIE().
| DIE & DwarfUnit::createAndAddDIE | ( | dwarf::Tag | Tag, |
| DIE & | Parent, | ||
| const DINode * | N = nullptr ) |
Create a DIE with the given Tag, add the DIE to its parent, and call insertDIE if MD is not null.
Definition at line 434 of file DwarfUnit.cpp.
References llvm::DIE::addChild(), DIEValueAllocator, llvm::DIE::get(), insertDIE(), N, and llvm::Tag.
Referenced by addAnnotation(), addThrownTypes(), llvm::DwarfCompileUnit::constructCallSiteEntryDIE(), constructSubprogramArguments(), constructTypeDIE(), createTypeDIE(), createTypeDIE(), llvm::DwarfCompileUnit::getOrCreateCommonBlock(), llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE(), getOrCreateModule(), getOrCreateNameSpace(), getOrCreateStaticMemberDIE(), and getOrCreateSubprogramDIE().
| DIE * DwarfUnit::createTypeDIE | ( | const DICompositeType * | Ty | ) |
Get context owner's DIE.
Definition at line 611 of file DwarfUnit.cpp.
References llvm::cast(), constructTypeDIE(), createAndAddDIE(), getDIE(), getOrCreateContextDIE(), and updateAcceleratorTables().
Creates type DIE with specific context.
Definition at line 627 of file DwarfUnit.cpp.
References addGlobalType(), llvm::cast(), constructTypeDIE(), createAndAddDIE(), DD, llvm::dyn_cast(), getCU(), and updateAcceleratorTables().
Referenced by llvm::DwarfDebug::addDwarfTypeUnitType().
|
protected |
Emit the common part of the header for this unit.
Definition at line 2109 of file DwarfUnit.cpp.
References Asm, DD, EndLabel, llvm::MCSection::getBeginSymbol(), llvm::MCObjectFileInfo::getDwarfAbbrevSection(), getHeaderSize(), getSize(), llvm::DIEUnit::getUnitDie(), and llvm::Version.
Referenced by llvm::DwarfCompileUnit::emitHeader(), and llvm::DwarfTypeUnit::emitHeader().
|
pure virtual |
Emit the header for this unit, not including the initial length field.
Implemented in llvm::DwarfCompileUnit, and llvm::DwarfTypeUnit.
Referenced by llvm::DwarfFile::emitUnit().
|
inline |
Definition at line 105 of file DwarfUnit.h.
References Asm.
|
pure virtual |
Implemented in llvm::DwarfCompileUnit, and llvm::DwarfTypeUnit.
Referenced by addBlock(), constructTypeDIE(), and createTypeDIE().
|
inline |
Definition at line 113 of file DwarfUnit.h.
References CUNode.
Referenced by llvm::DwarfTypeUnit::DwarfTypeUnit(), llvm::DwarfFile::emitUnit(), llvm::DwarfDebug::endFunctionImpl(), and llvm::DwarfCompileUnit::includeMinimalInlineScopes().
Returns the DIE map slot for the specified debug variable.
We delegate the request to DwarfDebug when the MDNode can be part of the type system, since DIEs for the type system can be shared across CUs and the mappings are kept in DwarfDebug.
Definition at line 206 of file DwarfUnit.cpp.
References D(), DU, isShareableAcrossCUs(), and MDNodeToDieMap.
Referenced by applySubprogramDefinitionAttributes(), constructContainingTypeDIEs(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), constructPropertyForwardDIEs(), constructTypeDIE(), createTypeDIE(), llvm::DwarfCompileUnit::finishSubprogramDefinition(), llvm::DwarfCompileUnit::getOrCreateCommonBlock(), getOrCreateContextDIE(), llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE(), llvm::DwarfCompileUnit::getOrCreateImportedEntityDIE(), getOrCreateModule(), getOrCreateNameSpace(), getOrCreateStaticMemberDIE(), getOrCreateSubprogramDIE(), and getOrCreateTypeDIE().
|
inline |
Returns a fresh newly allocated DIELoc.
Definition at line 143 of file DwarfUnit.h.
References DIEValueAllocator.
Referenced by applySubprogramAttributes().
|
inline |
Definition at line 114 of file DwarfUnit.h.
References DD.
Referenced by applySubprogramAttributes(), and llvm::DwarfCompileUnit::finishEntityDefinition().
|
inline |
Definition at line 111 of file DwarfUnit.h.
References EndLabel.
Referenced by llvm::DwarfFile::emitUnit().
|
inlinevirtual |
Compute the size of a header for this unit, not including the initial length field.
Reimplemented in llvm::DwarfCompileUnit, and llvm::DwarfTypeUnit.
Definition at line 300 of file DwarfUnit.h.
Referenced by llvm::DwarfFile::computeSizeAndOffsetsForUnit(), emitCommonHeader(), llvm::DwarfCompileUnit::getHeaderSize(), and llvm::DwarfTypeUnit::getHeaderSize().
|
inline |
Get the the symbol for start of the section for this unit.
Definition at line 107 of file DwarfUnit.h.
References assert(), and LabelBegin.
Referenced by llvm::emitDWARF5AccelTable().
Get context owner's DIE.
Reimplemented in llvm::DwarfCompileUnit.
Definition at line 597 of file DwarfUnit.cpp.
References llvm::dyn_cast(), getDIE(), getOrCreateModule(), getOrCreateNameSpace(), getOrCreateSubprogramDIE(), getOrCreateTypeDIE(), llvm::DIEUnit::getUnitDie(), llvm::isa(), and T.
Referenced by constructTypeDIE(), createTypeDIE(), llvm::DwarfCompileUnit::getOrCreateContextDIE(), getOrCreateModule(), getOrCreateNameSpace(), getOrCreateStaticMemberDIE(), getOrCreateSubprogramContextDIE(), and getOrCreateTypeDIE().
Definition at line 1348 of file DwarfUnit.cpp.
References addFlag(), addGlobalName(), addString(), addUInt(), createAndAddDIE(), getDIE(), getOrCreateContextDIE(), and getOrCreateSourceID().
Referenced by llvm::DwarfCompileUnit::constructImportedEntityDIE(), and getOrCreateContextDIE().
| DIE * DwarfUnit::getOrCreateNameSpace | ( | const DINamespace * | NS | ) |
Definition at line 1327 of file DwarfUnit.cpp.
References addFlag(), addGlobalName(), addString(), createAndAddDIE(), CUNode, DD, getDIE(), llvm::DINamespace::getExportSymbols(), llvm::DINamespace::getName(), getOrCreateContextDIE(), and llvm::DINamespace::getScope().
Referenced by llvm::DwarfCompileUnit::constructImportedEntityDIE(), and getOrCreateContextDIE().
Look up the source ID for the given file.
If none currently exists, create a new ID and insert it in the line table.
Implemented in llvm::DwarfCompileUnit.
Referenced by addSourceLine(), applySubprogramDefinitionAttributes(), and getOrCreateModule().
|
protected |
Create new static data member DIE.
Definition at line 2053 of file DwarfUnit.cpp.
References addAccess(), addBlock(), addConstantFPValue(), addConstantValue(), addFlag(), addSourceLine(), addString(), addType(), addUInt(), Asm, assert(), llvm::Block, createAndAddDIE(), DIEValueAllocator, DwarfUnit(), llvm::dyn_cast_or_null(), llvm::DIType::getAlignInBytes(), llvm::DIDerivedType::getConstant(), getDIE(), llvm::DIType::getFlags(), llvm::DIType::getName(), getOrCreateContextDIE(), llvm::DIType::getScope(), llvm::DIE::getTag(), llvm::DINode::getTag(), llvm::DIE::getUnit(), I, llvm::DIType::isArtificial(), and llvm::dwarf::isType().
Referenced by constructTypeDIE(), and llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE().
|
inlineprotected |
Definition at line 355 of file DwarfUnit.h.
References getOrCreateContextDIE(), and llvm::DIEUnit::getUnitDie().
Referenced by getOrCreateSubprogramDIE().
|
virtual |
Reimplemented in llvm::DwarfCompileUnit.
Definition at line 1379 of file DwarfUnit.cpp.
References createAndAddDIE(), DwarfUnit(), getDIE(), getOrCreateSubprogramContextDIE(), getOrCreateSubprogramDIE(), llvm::DIE::getUnit(), and shouldPlaceInUnitDIE().
Referenced by constructTypeDIE(), getOrCreateContextDIE(), llvm::DwarfCompileUnit::getOrCreateSubprogramDIE(), and getOrCreateSubprogramDIE().
Find existing DIE or create new DIE for the given type.
Definition at line 667 of file DwarfUnit.cpp.
References assert(), llvm::cast(), DD, DwarfUnit(), getBaseType(), getDIE(), getOrCreateContextDIE(), getOrCreateTypeDIE(), and llvm::DIE::getUnit().
Referenced by addType(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), constructTypeDIE(), getOrCreateContextDIE(), and getOrCreateTypeDIE().
Get string containing language specific context for a global name.
Walks the metadata parent chain in a language specific manner (using the compile unit language) and returns it as a string. This is done at the metadata level because DIEs may not currently have been added to the parent context and walking the DIEs looking for names is more expensive than walking the metadata.
Definition at line 749 of file DwarfUnit.cpp.
References llvm::DIScope::getScope(), getSourceLanguage(), llvm::isa(), llvm::dwarf::isCPlusPlus(), and llvm::reverse().
Referenced by llvm::DwarfCompileUnit::addGlobalName(), llvm::DwarfCompileUnit::addGlobalNameForTypeUnit(), llvm::DwarfCompileUnit::addGlobalTypeImpl(), and llvm::DwarfCompileUnit::addGlobalTypeUnitType().
| llvm::dwarf::SourceLanguage DwarfUnit::getSourceLanguage | ( | ) | const |
Definition at line 737 of file DwarfUnit.cpp.
References llvm::dwarf::DW_LANG_hi_user, and llvm::dwarf::toDW_LANG().
Referenced by applySubprogramAttributes(), and getParentContextString().
|
inline |
Gets Unique ID for this unit.
Definition at line 103 of file DwarfUnit.h.
References UniqueID.
Referenced by llvm::DwarfCompileUnit::getOrCreateSourceID(), and llvm::DwarfCompileUnit::initStmtList().
Insert DIE into the map.
We delegate the request to DwarfDebug when the MDNode can be part of the type system, since DIEs for the type system can be shared across CUs and the mappings are kept in DwarfDebug.
Definition at line 212 of file DwarfUnit.cpp.
References D(), DU, isShareableAcrossCUs(), and MDNodeToDieMap.
Referenced by llvm::DwarfCompileUnit::constructCallSiteParmEntryDIEs(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), llvm::DwarfCompileUnit::constructLabelDIE(), llvm::DwarfCompileUnit::constructVariableDIE(), createAndAddDIE(), and llvm::DwarfCompileUnit::DwarfCompileUnit().
| void DwarfUnit::insertDIE | ( | DIE * | D | ) |
Definition at line 220 of file DwarfUnit.cpp.
References D(), and MDNodeToDieMap.
Check whether the DIE for this MDNode can be shared across CUs.
Definition at line 184 of file DwarfUnit.cpp.
References llvm::cast(), D(), DD, and llvm::isa().
Referenced by getDIE(), and insertDIE().
|
inlineprotected |
Definition at line 350 of file DwarfUnit.h.
Referenced by getOrCreateSubprogramDIE().
| void DwarfUnit::updateAcceleratorTables | ( | const DIScope * | Context, |
| const DIType * | Ty, | ||
| const DIE & | TyDIE ) |
If this is a named finished type then include it in the list of types for the accelerator tables.
Definition at line 694 of file DwarfUnit.cpp.
References addGlobalType(), CUNode, DD, llvm::dwarf::DW_FLAG_type_implementation, and llvm::dyn_cast().
Referenced by createTypeDIE(), and createTypeDIE().
|
inline |
|
protected |
Target of Dwarf emission.
Definition at line 47 of file DwarfUnit.h.
Referenced by llvm::DwarfCompileUnit::addAddrTableBase(), addAttribute(), addBlock(), addBlock(), addBlock(), llvm::DwarfCompileUnit::addComplexAddress(), llvm::DwarfCompileUnit::addLocationAttribute(), addRnglistsBase(), llvm::DwarfCompileUnit::addScopeRangeList(), addSectionLabel(), addString(), addStringOffsetsStart(), llvm::DwarfCompileUnit::applyStmtList(), applySubprogramAttributes(), llvm::DwarfCompileUnit::attachRangesOrLowHighPC(), llvm::DwarfCompileUnit::constructCallSiteEntryDIE(), llvm::DwarfCompileUnit::constructCallSiteParmEntryDIEs(), constructTypeDIE(), llvm::DwarfCompileUnit::DwarfCompileUnit(), DwarfUnit(), emitCommonHeader(), llvm::DwarfCompileUnit::emitHeader(), llvm::DwarfTypeUnit::emitHeader(), getAsmPrinter(), llvm::DwarfTypeUnit::getHeaderSize(), getHeaderSize(), llvm::DwarfCompileUnit::getLength(), llvm::DwarfCompileUnit::getOrCreateSourceID(), getOrCreateStaticMemberDIE(), llvm::DwarfCompileUnit::initStmtList(), and llvm::DwarfCompileUnit::updateSubprogramScopeDIE().
This map is used to keep track of subprogram DIEs that need DW_AT_containing_type attribute.
This attribute points to a DIE that corresponds to the MDNode mapped with the subprogram DIE.
Definition at line 75 of file DwarfUnit.h.
Referenced by applySubprogramAttributes(), and constructContainingTypeDIEs().
|
protected |
MDNode for the compile unit.
Definition at line 41 of file DwarfUnit.h.
Referenced by llvm::DwarfCompileUnit::addLocationAttribute(), addString(), applySubprogramAttributes(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), llvm::DwarfCompileUnit::constructInlinedScopeDIE(), llvm::DwarfCompileUnit::DwarfCompileUnit(), DwarfUnit(), llvm::DwarfCompileUnit::finishEntityDefinition(), getCUNode(), getOrCreateNameSpace(), llvm::DwarfCompileUnit::hasDwarfPubSections(), llvm::DwarfCompileUnit::initStmtList(), updateAcceleratorTables(), and llvm::DwarfCompileUnit::updateSubprogramScopeDIE().
|
protected |
Definition at line 56 of file DwarfUnit.h.
Referenced by llvm::DwarfCompileUnit::addAddrTableBase(), addAttribute(), addBlock(), addConstantValue(), addConstantValue(), addDIEEntry(), addFlag(), llvm::DwarfCompileUnit::addLabelAddress(), addLinkageName(), llvm::DwarfCompileUnit::addLinkageNamesToDeclarations(), llvm::DwarfCompileUnit::addLocationAttribute(), llvm::DwarfCompileUnit::addLocationList(), addOpAddress(), addPoolOpAddress(), llvm::DwarfCompileUnit::addRange(), addRnglistsBase(), llvm::DwarfCompileUnit::addScopeRangeList(), addSectionLabel(), addSectionOffset(), addString(), applySubprogramAttributes(), applySubprogramDefinitionAttributes(), llvm::DwarfCompileUnit::attachLowHighPC(), llvm::DwarfCompileUnit::attachRangesOrLowHighPC(), llvm::DwarfCompileUnit::attachRangesOrLowHighPC(), llvm::DwarfCompileUnit::constructCallSiteEntryDIE(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), llvm::DwarfCompileUnit::constructInlinedScopeDIE(), llvm::DwarfCompileUnit::constructScopeDIE(), constructTypeDIE(), llvm::DwarfCompileUnit::createAndAddScopeChildren(), createTypeDIE(), DwarfUnit(), emitCommonHeader(), llvm::DwarfCompileUnit::emitHeader(), llvm::DwarfTypeUnit::emitHeader(), getDwarfDebug(), llvm::DwarfCompileUnit::getHeaderSize(), getHeaderSize(), llvm::DwarfCompileUnit::getOrCreateLexicalBlockDIE(), getOrCreateNameSpace(), llvm::DwarfCompileUnit::getOrCreateSourceID(), llvm::DwarfCompileUnit::getOrCreateSubprogramDIE(), getOrCreateTypeDIE(), llvm::DwarfCompileUnit::hasDwarfPubSections(), llvm::DwarfCompileUnit::includeMinimalInlineScopes(), llvm::DwarfCompileUnit::initStmtList(), isShareableAcrossCUs(), updateAcceleratorTables(), llvm::DwarfCompileUnit::updateSubprogramScopeDIE(), llvm::DwarfCompileUnit::useGNUAnalogForDwarf5Feature(), and useSegmentedStringOffsetsTable().
|
protected |
A list of all the DIEBlocks in use.
Definition at line 67 of file DwarfUnit.h.
Referenced by addBlock(), and ~DwarfUnit().
|
protected |
A list of all the DIELocs in use.
Definition at line 70 of file DwarfUnit.h.
Referenced by addBlock(), and ~DwarfUnit().
|
protected |
Definition at line 44 of file DwarfUnit.h.
Referenced by addAttribute(), llvm::DwarfCompileUnit::addBaseTypeRef(), addBlock(), llvm::DwarfCompileUnit::addComplexAddress(), llvm::DwarfCompileUnit::addLabelAddress(), addLabelDelta(), llvm::DwarfCompileUnit::addLocationAttribute(), addString(), llvm::DwarfCompileUnit::constructCallSiteParmEntryDIEs(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), llvm::DwarfCompileUnit::constructInlinedScopeDIE(), llvm::DwarfCompileUnit::constructLabelDIE(), llvm::DwarfCompileUnit::constructSubprogramScopeDIE(), llvm::DwarfCompileUnit::constructVariableDIE(), createAndAddDIE(), llvm::DwarfCompileUnit::createBaseTypeDIEs(), getDIELoc(), llvm::DwarfCompileUnit::getOrCreateLexicalBlockDIE(), getOrCreateStaticMemberDIE(), and llvm::DwarfCompileUnit::updateSubprogramScopeDIE().
|
protected |
Definition at line 57 of file DwarfUnit.h.
Referenced by addRnglistsBase(), llvm::DwarfCompileUnit::addScopeRangeList(), addString(), addStringOffsetsStart(), applySubprogramDefinitionAttributes(), llvm::DwarfCompileUnit::createAbstractEntity(), llvm::DwarfCompileUnit::createAndAddScopeChildren(), DwarfUnit(), getDIE(), and insertDIE().
|
protected |
Emitted at the end of the CU and used to compute the CU Length field.
Definition at line 53 of file DwarfUnit.h.
Referenced by llvm::DwarfCompileUnit::attachRangesOrLowHighPC(), emitCommonHeader(), and getEndLabel().
|
protected |
An anonymous type for index type. Owned by DIEUnit.
Definition at line 60 of file DwarfUnit.h.
|
protected |
The start of the unit within its section.
Definition at line 50 of file DwarfUnit.h.
Referenced by llvm::DwarfCompileUnit::emitHeader(), llvm::DwarfTypeUnit::emitHeader(), and getLabelBegin().
Tracks the mapping of unit level debug information variables to debug information entries.
Definition at line 64 of file DwarfUnit.h.
Referenced by getDIE(), insertDIE(), and insertDIE().
Definition at line 76 of file DwarfUnit.h.
Referenced by constructPropertyForwardDIEs().
|
protected |
A numeric ID unique among all CUs in the module.
Definition at line 39 of file DwarfUnit.h.
Referenced by llvm::DwarfTypeUnit::DwarfTypeUnit(), DwarfUnit(), and getUniqueID().