|
DwarfTypeUnit (DwarfCompileUnit &CU, AsmPrinter *A, DwarfDebug *DW, DwarfFile *DWU, unsigned UniqueID, MCDwarfDwoLineTable *SplitLineTable=nullptr) |
| void |
setTypeSignature (uint64_t Signature) |
| uint64_t |
getTypeSignature () const |
|
Returns Type Signature. |
| void |
setType (const DIE *Ty) |
| void |
emitHeader (bool UseOffsets) override |
|
Emit the header for this unit, not including the initial length field. |
| unsigned |
getHeaderSize () const override |
|
Compute the size of a header for this unit, not including the initial length field. |
| void |
addGlobalName (StringRef Name, const DIE &Die, const DIScope *Context) override |
|
Add a new global name to the compile unit. |
| void |
addGlobalTypeImpl (const DIType *Ty, const DIE &Die, const DIScope *Context) override |
|
Add a new global type to the compile unit. |
| DwarfCompileUnit & |
getCU () override |
| Public Member Functions inherited from llvm::DwarfUnit |
|
| 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 |
| bool |
hasContent () const |
|
Return true if this compile unit has something to write out. |
| std::string |
getParentContextString (const DIScope *Context) const |
|
Get string containing language specific context for a global name. |
| 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 |
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. |
| std::optional< unsigned > |
constructSubprogramArguments (DIE &Buffer, DITypeRefArray 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 |
| 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. |
| void |
constructTypeDIE (DIE &Buffer, const DICompositeType *CTy) |
| void |
addSectionDelta (DIE &Die, dwarf::Attribute Attribute, const MCSymbol *Hi, const MCSymbol *Lo) |
|
addSectionDelta - Add a label delta attribute data and value. |
| 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 |