|
LLVM
3.7.0
|
#include <DIBuilder.h>
Public Types | |
| enum | DebugEmissionKind { FullDebug =1, LineTablesOnly } |
Public Member Functions | |
| DIBuilder (Module &M, bool AllowUnresolved=true) | |
| Construct a builder for a module. More... | |
| void | finalize () |
| Construct any deferred debug info descriptors. More... | |
| DICompileUnit * | createCompileUnit (unsigned Lang, StringRef File, StringRef Dir, StringRef Producer, bool isOptimized, StringRef Flags, unsigned RV, StringRef SplitName=StringRef(), DebugEmissionKind Kind=FullDebug, uint64_t DWOId=0, bool EmitDebugInfo=true) |
| A CompileUnit provides an anchor for all debugging information generated during this instance of compilation. More... | |
| DIFile * | createFile (StringRef Filename, StringRef Directory) |
| Create a file descriptor to hold debugging information for a file. More... | |
| DIEnumerator * | createEnumerator (StringRef Name, int64_t Val) |
| Create a single enumerator value. More... | |
| DIBasicType * | createUnspecifiedType (StringRef Name) |
| Create a DWARF unspecified type. More... | |
| DIBasicType * | createNullPtrType () |
| Create C++11 nullptr type. More... | |
| DIBasicType * | createBasicType (StringRef Name, uint64_t SizeInBits, uint64_t AlignInBits, unsigned Encoding) |
| Create debugging information entry for a basic type. More... | |
| DIDerivedType * | createQualifiedType (unsigned Tag, DIType *FromTy) |
| Create debugging information entry for a qualified type, e.g. More... | |
| DIDerivedType * | createPointerType (DIType *PointeeTy, uint64_t SizeInBits, uint64_t AlignInBits=0, StringRef Name="") |
| Create debugging information entry for a pointer. More... | |
| DIDerivedType * | createMemberPointerType (DIType *PointeeTy, DIType *Class, uint64_t SizeInBits, uint64_t AlignInBits=0) |
| Create debugging information entry for a pointer to member. More... | |
| DIDerivedType * | createReferenceType (unsigned Tag, DIType *RTy) |
| Create debugging information entry for a c++ style reference or rvalue reference type. More... | |
| DIDerivedType * | createTypedef (DIType *Ty, StringRef Name, DIFile *File, unsigned LineNo, DIScope *Context) |
| Create debugging information entry for a typedef. More... | |
| DIDerivedType * | createFriend (DIType *Ty, DIType *FriendTy) |
| Create debugging information entry for a 'friend'. More... | |
| DIDerivedType * | createInheritance (DIType *Ty, DIType *BaseTy, uint64_t BaseOffset, unsigned Flags) |
| Create debugging information entry to establish inheritance relationship between two types. More... | |
| DIDerivedType * | createMemberType (DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNo, uint64_t SizeInBits, uint64_t AlignInBits, uint64_t OffsetInBits, unsigned Flags, DIType *Ty) |
| Create debugging information entry for a member. More... | |
| DIDerivedType * | createStaticMemberType (DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNo, DIType *Ty, unsigned Flags, llvm::Constant *Val) |
| Create debugging information entry for a C++ static data member. More... | |
| DIDerivedType * | createObjCIVar (StringRef Name, DIFile *File, unsigned LineNo, uint64_t SizeInBits, uint64_t AlignInBits, uint64_t OffsetInBits, unsigned Flags, DIType *Ty, MDNode *PropertyNode) |
| Create debugging information entry for Objective-C instance variable. More... | |
| DIObjCProperty * | createObjCProperty (StringRef Name, DIFile *File, unsigned LineNumber, StringRef GetterName, StringRef SetterName, unsigned PropertyAttributes, DIType *Ty) |
| Create debugging information entry for Objective-C property. More... | |
| DICompositeType * | createClassType (DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, uint64_t OffsetInBits, unsigned Flags, DIType *DerivedFrom, DINodeArray Elements, DIType *VTableHolder=nullptr, MDNode *TemplateParms=nullptr, StringRef UniqueIdentifier="") |
| Create debugging information entry for a class. More... | |
| DICompositeType * | createStructType (DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, unsigned Flags, DIType *DerivedFrom, DINodeArray Elements, unsigned RunTimeLang=0, DIType *VTableHolder=nullptr, StringRef UniqueIdentifier="") |
| Create debugging information entry for a struct. More... | |
| DICompositeType * | createUnionType (DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, unsigned Flags, DINodeArray Elements, unsigned RunTimeLang=0, StringRef UniqueIdentifier="") |
| Create debugging information entry for an union. More... | |
| DITemplateTypeParameter * | createTemplateTypeParameter (DIScope *Scope, StringRef Name, DIType *Ty) |
| Create debugging information for template type parameter. More... | |
| DITemplateValueParameter * | createTemplateValueParameter (DIScope *Scope, StringRef Name, DIType *Ty, Constant *Val) |
| Create debugging information for template value parameter. More... | |
| DITemplateValueParameter * | createTemplateTemplateParameter (DIScope *Scope, StringRef Name, DIType *Ty, StringRef Val) |
| Create debugging information for a template template parameter. More... | |
| DITemplateValueParameter * | createTemplateParameterPack (DIScope *Scope, StringRef Name, DIType *Ty, DINodeArray Val) |
| Create debugging information for a template parameter pack. More... | |
| DICompositeType * | createArrayType (uint64_t Size, uint64_t AlignInBits, DIType *Ty, DINodeArray Subscripts) |
| Create debugging information entry for an array. More... | |
| DICompositeType * | createVectorType (uint64_t Size, uint64_t AlignInBits, DIType *Ty, DINodeArray Subscripts) |
| Create debugging information entry for a vector type. More... | |
| DICompositeType * | createEnumerationType (DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, DINodeArray Elements, DIType *UnderlyingType, StringRef UniqueIdentifier="") |
| Create debugging information entry for an enumeration. More... | |
| DISubroutineType * | createSubroutineType (DIFile *File, DITypeRefArray ParameterTypes, unsigned Flags=0) |
| Create subroutine type. More... | |
| DIType * | createArtificialType (DIType *Ty) |
| Create a new DIType* with "artificial" flag set. More... | |
| DIType * | createObjectPointerType (DIType *Ty) |
| Create a new DIType* with the "object pointer" flag set. More... | |
| DICompositeType * | createForwardDecl (unsigned Tag, StringRef Name, DIScope *Scope, DIFile *F, unsigned Line, unsigned RuntimeLang=0, uint64_t SizeInBits=0, uint64_t AlignInBits=0, StringRef UniqueIdentifier="") |
| Create a permanent forward-declared type. More... | |
| DICompositeType * | createReplaceableCompositeType (unsigned Tag, StringRef Name, DIScope *Scope, DIFile *F, unsigned Line, unsigned RuntimeLang=0, uint64_t SizeInBits=0, uint64_t AlignInBits=0, unsigned Flags=DINode::FlagFwdDecl, StringRef UniqueIdentifier="") |
| Create a temporary forward-declared type. More... | |
| void | retainType (DIType *T) |
| Retain DIType* in a module even if it is not referenced through debug info anchors. More... | |
| DIBasicType * | createUnspecifiedParameter () |
| Create unspecified parameter type for a subroutine type. More... | |
| DINodeArray | getOrCreateArray (ArrayRef< Metadata * > Elements) |
| Get a DINodeArray, create one if required. More... | |
| DITypeRefArray | getOrCreateTypeArray (ArrayRef< Metadata * > Elements) |
| Get a DITypeRefArray, create one if required. More... | |
| DISubrange * | getOrCreateSubrange (int64_t Lo, int64_t Count) |
| Create a descriptor for a value range. More... | |
| DIGlobalVariable * | createGlobalVariable (DIScope *Context, StringRef Name, StringRef LinkageName, DIFile *File, unsigned LineNo, DIType *Ty, bool isLocalToUnit, llvm::Constant *Val, MDNode *Decl=nullptr) |
| Create a new descriptor for the specified variable. More... | |
| DIGlobalVariable * | createTempGlobalVariableFwdDecl (DIScope *Context, StringRef Name, StringRef LinkageName, DIFile *File, unsigned LineNo, DIType *Ty, bool isLocalToUnit, llvm::Constant *Val, MDNode *Decl=nullptr) |
| Identical to createGlobalVariable except that the resulting DbgNode is temporary and meant to be RAUWed. More... | |
| DILocalVariable * | createLocalVariable (unsigned Tag, DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNo, DIType *Ty, bool AlwaysPreserve=false, unsigned Flags=0, unsigned ArgNo=0) |
| Create a new descriptor for the specified local variable. More... | |
| DIExpression * | createExpression (ArrayRef< uint64_t > Addr=None) |
| Create a new descriptor for the specified variable which has a complex address expression for its address. More... | |
| DIExpression * | createExpression (ArrayRef< int64_t > Addr) |
| DIExpression * | createBitPieceExpression (unsigned OffsetInBits, unsigned SizeInBits) |
| Create a descriptor to describe one part of aggregate variable that is fragmented across multiple Values. More... | |
| DISubprogram * | createFunction (DIScope *Scope, StringRef Name, StringRef LinkageName, DIFile *File, unsigned LineNo, DISubroutineType *Ty, bool isLocalToUnit, bool isDefinition, unsigned ScopeLine, unsigned Flags=0, bool isOptimized=false, Function *Fn=nullptr, MDNode *TParam=nullptr, MDNode *Decl=nullptr) |
| Create a new descriptor for the specified subprogram. More... | |
| DISubprogram * | createTempFunctionFwdDecl (DIScope *Scope, StringRef Name, StringRef LinkageName, DIFile *File, unsigned LineNo, DISubroutineType *Ty, bool isLocalToUnit, bool isDefinition, unsigned ScopeLine, unsigned Flags=0, bool isOptimized=false, Function *Fn=nullptr, MDNode *TParam=nullptr, MDNode *Decl=nullptr) |
| Identical to createFunction, except that the resulting DbgNode is meant to be RAUWed. More... | |
| DISubprogram * | createFunction (DIScopeRef Scope, StringRef Name, StringRef LinkageName, DIFile *File, unsigned LineNo, DISubroutineType *Ty, bool isLocalToUnit, bool isDefinition, unsigned ScopeLine, unsigned Flags=0, bool isOptimized=false, Function *Fn=nullptr, MDNode *TParam=nullptr, MDNode *Decl=nullptr) |
| FIXME: this is added for dragonegg. More... | |
| DISubprogram * | createMethod (DIScope *Scope, StringRef Name, StringRef LinkageName, DIFile *File, unsigned LineNo, DISubroutineType *Ty, bool isLocalToUnit, bool isDefinition, unsigned Virtuality=0, unsigned VTableIndex=0, DIType *VTableHolder=nullptr, unsigned Flags=0, bool isOptimized=false, Function *Fn=nullptr, MDNode *TParam=nullptr) |
| Create a new descriptor for the specified C++ method. More... | |
| DINamespace * | createNameSpace (DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNo) |
| This creates new descriptor for a namespace with the specified parent scope. More... | |
| DIModule * | createModule (DIScope *Scope, StringRef Name, StringRef ConfigurationMacros, StringRef IncludePath, StringRef ISysRoot) |
| This creates new descriptor for a module with the specified parent scope. More... | |
| DILexicalBlockFile * | createLexicalBlockFile (DIScope *Scope, DIFile *File, unsigned Discriminator=0) |
| This creates a descriptor for a lexical block with a new file attached. More... | |
| DILexicalBlock * | createLexicalBlock (DIScope *Scope, DIFile *File, unsigned Line, unsigned Col) |
| This creates a descriptor for a lexical block with the specified parent context. More... | |
| DIImportedEntity * | createImportedModule (DIScope *Context, DINamespace *NS, unsigned Line) |
| Create a descriptor for an imported module. More... | |
| DIImportedEntity * | createImportedModule (DIScope *Context, DIImportedEntity *NS, unsigned Line) |
| Create a descriptor for an imported module. More... | |
| DIImportedEntity * | createImportedModule (DIScope *Context, DIModule *M, unsigned Line) |
| Create a descriptor for an imported module. More... | |
| DIImportedEntity * | createImportedDeclaration (DIScope *Context, DINode *Decl, unsigned Line, StringRef Name="") |
| Create a descriptor for an imported function. More... | |
| Instruction * | insertDeclare (llvm::Value *Storage, DILocalVariable *VarInfo, DIExpression *Expr, const DILocation *DL, BasicBlock *InsertAtEnd) |
| Insert a new llvm.dbg.declare intrinsic call. More... | |
| Instruction * | insertDeclare (llvm::Value *Storage, DILocalVariable *VarInfo, DIExpression *Expr, const DILocation *DL, Instruction *InsertBefore) |
| Insert a new llvm.dbg.declare intrinsic call. More... | |
| Instruction * | insertDbgValueIntrinsic (llvm::Value *Val, uint64_t Offset, DILocalVariable *VarInfo, DIExpression *Expr, const DILocation *DL, BasicBlock *InsertAtEnd) |
| Insert a new llvm.dbg.value intrinsic call. More... | |
| Instruction * | insertDbgValueIntrinsic (llvm::Value *Val, uint64_t Offset, DILocalVariable *VarInfo, DIExpression *Expr, const DILocation *DL, Instruction *InsertBefore) |
| Insert a new llvm.dbg.value intrinsic call. More... | |
| void | replaceVTableHolder (DICompositeType *&T, DICompositeType *VTableHolder) |
| Replace the vtable holder in the given composite type. More... | |
| void | replaceArrays (DICompositeType *&T, DINodeArray Elements, DINodeArray TParems=DINodeArray()) |
| Replace arrays on a composite type. More... | |
| template<class NodeTy > | |
| NodeTy * | replaceTemporary (TempMDNode &&N, NodeTy *Replacement) |
| Replace a temporary node. More... | |
Definition at line 35 of file DIBuilder.h.
| Enumerator | |
|---|---|
| FullDebug | |
| LineTablesOnly | |
Definition at line 71 of file DIBuilder.h.
Construct a builder for a module.
If AllowUnresolved, collect unresolved nodes attached to the module in order to resolve cycles during finalize().
Definition at line 60 of file DIBuilder.cpp.
| DICompositeType * DIBuilder::createArrayType | ( | uint64_t | Size, |
| uint64_t | AlignInBits, | ||
| DIType * | Ty, | ||
| DINodeArray | Subscripts | ||
| ) |
Create debugging information entry for an array.
| Size | Array size. |
| AlignInBits | Alignment. |
| Ty | Element type. |
| Subscripts | Subscripts. |
Definition at line 454 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), and llvm::MDNode::get().
Create a new DIType* with "artificial" flag set.
Definition at line 482 of file DIBuilder.cpp.
References createTypeWithFlags(), and llvm::DIType::isArtificial().
| DIBasicType * DIBuilder::createBasicType | ( | StringRef | Name, |
| uint64_t | SizeInBits, | ||
| uint64_t | AlignInBits, | ||
| unsigned | Encoding | ||
| ) |
Create debugging information entry for a basic type.
| Name | Type name. |
| SizeInBits | Size of the type. |
| AlignInBits | Type alignment. |
| Encoding | DWARF encoding code, e.g. dwarf::DW_ATE_float. |
Definition at line 225 of file DIBuilder.cpp.
References llvm::StringRef::empty(), and llvm::MDNode::get().
| DIExpression * DIBuilder::createBitPieceExpression | ( | unsigned | OffsetInBits, |
| unsigned | SizeInBits | ||
| ) |
Create a descriptor to describe one part of aggregate variable that is fragmented across multiple Values.
| OffsetInBits | Offset of the piece in bits. |
| SizeInBits | Size of the piece in bits. |
Definition at line 626 of file DIBuilder.cpp.
References llvm::MDNode::get().
| DICompositeType * DIBuilder::createClassType | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| DIFile * | File, | ||
| unsigned | LineNumber, | ||
| uint64_t | SizeInBits, | ||
| uint64_t | AlignInBits, | ||
| uint64_t | OffsetInBits, | ||
| unsigned | Flags, | ||
| DIType * | DerivedFrom, | ||
| DINodeArray | Elements, | ||
| DIType * | VTableHolder = nullptr, |
||
| MDNode * | TemplateParms = nullptr, |
||
| StringRef | UniqueIdentifier = "" |
||
| ) |
Create debugging information entry for a class.
| Scope | Scope in which this class is defined. |
| Name | class name. |
| File | File where this member is defined. |
| LineNumber | Line number. |
| SizeInBits | Member size. |
| AlignInBits | Member alignment. |
| OffsetInBits | Member offset. |
| Flags | Flags to encode member attribute, e.g. private |
| Elements | class members. |
| VTableHolder | Debug info of the base class that contains vtable for this type. This is used in DW_AT_containing_type. See DWARF documentation for more info. |
| TemplateParms | Template type parameters. |
| UniqueIdentifier | A unique identifier for the class. |
Definition at line 381 of file DIBuilder.cpp.
References llvm::StringRef::empty(), llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), getNonCompileUnitScope(), and retainType().
| DICompileUnit * DIBuilder::createCompileUnit | ( | unsigned | Lang, |
| StringRef | File, | ||
| StringRef | Dir, | ||
| StringRef | Producer, | ||
| bool | isOptimized, | ||
| StringRef | Flags, | ||
| unsigned | RV, | ||
| StringRef | SplitName = StringRef(), |
||
| DebugEmissionKind | Kind = FullDebug, |
||
| uint64_t | DWOId = 0, |
||
| bool | EmitDebugInfo = true |
||
| ) |
A CompileUnit provides an anchor for all debugging information generated during this instance of compilation.
| Lang | Source programming language, eg. dwarf::DW_LANG_C99 |
| File | File name |
| Dir | Directory |
| Producer | Identify the producer of debugging information and code. Usually this is a compiler version string. |
| isOptimized | A boolean flag which indicates whether optimization is enabled or not. |
| Flags | This string lists command line options. This string is directly embedded in debug info output which may be used by a tool analyzing generated debugging information. |
| RV | This indicates runtime version for languages like Objective-C. |
| SplitName | The name of the file that we'll split debug info out into. |
| Kind | The kind of debug information to generate. |
| DWOId | The DWOId if this is a split skeleton compile unit. |
| EmitDebugInfo | A boolean flag which indicates whether debug information should be written to the final output or not. When this is false, debug information annotations will be present in the IL but they are not written to the final assembly or object file. This supports tracking source location information in the back end without actually changing the output (e.g., when using optimization remarks). |
Definition at line 136 of file DIBuilder.cpp.
References llvm::NamedMDNode::addOperand(), llvm::dwarf::DW_LANG_lo_user, llvm::StringRef::empty(), llvm::MDNode::get(), llvm::MDNode::getDistinct(), and llvm::Module::getOrInsertNamedMetadata().
| DICompositeType * DIBuilder::createEnumerationType | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| DIFile * | File, | ||
| unsigned | LineNumber, | ||
| uint64_t | SizeInBits, | ||
| uint64_t | AlignInBits, | ||
| DINodeArray | Elements, | ||
| DIType * | UnderlyingType, | ||
| StringRef | UniqueIdentifier = "" |
||
| ) |
Create debugging information entry for an enumeration.
| Scope | Scope in which this enumeration is defined. |
| Name | Union name. |
| File | File where this member is defined. |
| LineNumber | Line number. |
| SizeInBits | Member size. |
| AlignInBits | Member alignment. |
| Elements | Enumeration elements. |
| UnderlyingType | Underlying type of a C++11/ObjC fixed enum. |
| UniqueIdentifier | A unique identifier for the enum. |
Definition at line 438 of file DIBuilder.cpp.
References llvm::StringRef::empty(), llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), getNonCompileUnitScope(), and retainType().
| DIEnumerator * DIBuilder::createEnumerator | ( | StringRef | Name, |
| int64_t | Val | ||
| ) |
Create a single enumerator value.
Definition at line 211 of file DIBuilder.cpp.
References llvm::StringRef::empty(), and llvm::MDNode::get().
| DIExpression * DIBuilder::createExpression | ( | ArrayRef< uint64_t > | Addr = None | ) |
Create a new descriptor for the specified variable which has a complex address expression for its address.
| Addr | An array of complex address operations. |
Definition at line 616 of file DIBuilder.cpp.
References llvm::MDNode::get().
Referenced by createExpression(), and llvm::replaceDbgDeclareForAlloca().
| DIExpression * DIBuilder::createExpression | ( | ArrayRef< int64_t > | Addr | ) |
Definition at line 620 of file DIBuilder.cpp.
References llvm::ArrayRef< T >::begin(), createExpression(), and llvm::ArrayRef< T >::end().
Create a file descriptor to hold debugging information for a file.
Definition at line 207 of file DIBuilder.cpp.
References llvm::MDNode::get().
| DICompositeType * DIBuilder::createForwardDecl | ( | unsigned | Tag, |
| StringRef | Name, | ||
| DIScope * | Scope, | ||
| DIFile * | F, | ||
| unsigned | Line, | ||
| unsigned | RuntimeLang = 0, |
||
| uint64_t | SizeInBits = 0, |
||
| uint64_t | AlignInBits = 0, |
||
| StringRef | UniqueIdentifier = "" |
||
| ) |
Create a permanent forward-declared type.
Definition at line 505 of file DIBuilder.cpp.
References llvm::StringRef::empty(), llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), getNonCompileUnitScope(), and retainType().
| DIDerivedType * DIBuilder::createFriend | ( | DIType * | Ty, |
| DIType * | FriendTy | ||
| ) |
Create debugging information entry for a 'friend'.
Definition at line 273 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), and llvm::MDNode::get().
| DISubprogram * DIBuilder::createFunction | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| StringRef | LinkageName, | ||
| DIFile * | File, | ||
| unsigned | LineNo, | ||
| DISubroutineType * | Ty, | ||
| bool | isLocalToUnit, | ||
| bool | isDefinition, | ||
| unsigned | ScopeLine, | ||
| unsigned | Flags = 0, |
||
| bool | isOptimized = false, |
||
| Function * | Fn = nullptr, |
||
| MDNode * | TParam = nullptr, |
||
| MDNode * | Decl = nullptr |
||
| ) |
Create a new descriptor for the specified subprogram.
See comments in DISubprogram* for descriptions of these fields.
| Scope | Function scope. |
| Name | Function name. |
| LinkageName | Mangled function name. |
| File | File where this variable is defined. |
| LineNo | Line number. |
| Ty | Function type. |
| isLocalToUnit | True if this function is not externally visible. |
| isDefinition | True if this is a function definition. |
| ScopeLine | Set to the beginning of the scope this starts |
| Flags | e.g. is this function prototyped or not. These flags are used to emit dwarf attributes. |
| isOptimized | True if optimization is ON. |
| Fn | llvm::Function pointer. |
| TParam | Function template parameters. |
Definition at line 647 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), getNonCompileUnitScope(), llvm::DINode::getTag(), llvm::MDTuple::getTemporary(), and llvm::None.
Referenced by createFunction().
| DISubprogram * DIBuilder::createFunction | ( | DIScopeRef | Scope, |
| StringRef | Name, | ||
| StringRef | LinkageName, | ||
| DIFile * | File, | ||
| unsigned | LineNo, | ||
| DISubroutineType * | Ty, | ||
| bool | isLocalToUnit, | ||
| bool | isDefinition, | ||
| unsigned | ScopeLine, | ||
| unsigned | Flags = 0, |
||
| bool | isOptimized = false, |
||
| Function * | Fn = nullptr, |
||
| MDNode * | TParam = nullptr, |
||
| MDNode * | Decl = nullptr |
||
| ) |
FIXME: this is added for dragonegg.
Once we update dragonegg to call resolve function, this will be removed.
Definition at line 632 of file DIBuilder.cpp.
References createFunction(), llvm::ARMBuildAttrs::File, llvm::LinkageName, and llvm::TypedDINodeRef< T >::resolve().
| DIGlobalVariable * DIBuilder::createGlobalVariable | ( | DIScope * | Context, |
| StringRef | Name, | ||
| StringRef | LinkageName, | ||
| DIFile * | File, | ||
| unsigned | LineNo, | ||
| DIType * | Ty, | ||
| bool | isLocalToUnit, | ||
| llvm::Constant * | Val, | ||
| MDNode * | Decl = nullptr |
||
| ) |
Create a new descriptor for the specified variable.
| Context | Variable scope. |
| Name | Name of the variable. |
| LinkageName | Mangled name of the variable. |
| File | File where this variable is defined. |
| LineNo | Line number. |
| Ty | Variable Type. |
| isLocalToUnit | Boolean flag indicate whether this variable is externally visible or not. |
| Val | llvm::Value of the variable. |
| Decl | Reference to the corresponding declaration. |
Definition at line 566 of file DIBuilder.cpp.
References checkGlobalVariableScope(), llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), and N.
| DIImportedEntity * DIBuilder::createImportedDeclaration | ( | DIScope * | Context, |
| DINode * | Decl, | ||
| unsigned | Line, | ||
| StringRef | Name = "" |
||
| ) |
Create a descriptor for an imported function.
| Context | The scope this module is imported into |
| Decl | The declaration (or definition) of a function, type, or variable |
| Line | Line number |
Definition at line 196 of file DIBuilder.cpp.
References createImportedModule(), and llvm::TypedDINodeRef< T >::get().
| DIImportedEntity * DIBuilder::createImportedModule | ( | DIScope * | Context, |
| DINamespace * | NS, | ||
| unsigned | Line | ||
| ) |
Create a descriptor for an imported module.
| Context | The scope this module is imported into |
| NS | The namespace being imported here |
| Line | Line number |
Definition at line 176 of file DIBuilder.cpp.
References createImportedModule().
| DIImportedEntity * DIBuilder::createImportedModule | ( | DIScope * | Context, |
| DIImportedEntity * | NS, | ||
| unsigned | Line | ||
| ) |
Create a descriptor for an imported module.
| Context | The scope this module is imported into |
| NS | An aliased namespace |
| Line | Line number |
Definition at line 183 of file DIBuilder.cpp.
References createImportedModule().
| DIImportedEntity * DIBuilder::createImportedModule | ( | DIScope * | Context, |
| DIModule * | M, | ||
| unsigned | Line | ||
| ) |
Create a descriptor for an imported module.
| Context | The scope this module is imported into |
| M | The module being imported here |
| Line | Line number |
Definition at line 190 of file DIBuilder.cpp.
References createImportedModule().
| DIDerivedType * DIBuilder::createInheritance | ( | DIType * | Ty, |
| DIType * | BaseTy, | ||
| uint64_t | BaseOffset, | ||
| unsigned | Flags | ||
| ) |
Create debugging information entry to establish inheritance relationship between two types.
| Ty | Original type. |
| BaseTy | Base type. Ty is inherits from base. |
| BaseOffset | Base offset. |
| Flags | Flags to describe inheritance attribute, e.g. private |
Definition at line 281 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), and llvm::MDNode::get().
| DILexicalBlock * DIBuilder::createLexicalBlock | ( | DIScope * | Scope, |
| DIFile * | File, | ||
| unsigned | Line, | ||
| unsigned | Col | ||
| ) |
This creates a descriptor for a lexical block with the specified parent context.
| Scope | Parent lexical scope. |
| File | Source file. |
| Line | Line number. |
| Col | Column number. |
Definition at line 727 of file DIBuilder.cpp.
References llvm::MDNode::getDistinct(), and getNonCompileUnitScope().
| DILexicalBlockFile * DIBuilder::createLexicalBlockFile | ( | DIScope * | Scope, |
| DIFile * | File, | ||
| unsigned | Discriminator = 0 |
||
| ) |
This creates a descriptor for a lexical block with a new file attached.
This merely extends the existing lexical block as it crosses a file.
| Scope | Lexical block. |
| File | Source file. |
| Discriminator | DWARF path discriminator value. |
Definition at line 721 of file DIBuilder.cpp.
References llvm::MDNode::get().
| DILocalVariable * DIBuilder::createLocalVariable | ( | unsigned | Tag, |
| DIScope * | Scope, | ||
| StringRef | Name, | ||
| DIFile * | File, | ||
| unsigned | LineNo, | ||
| DIType * | Ty, | ||
| bool | AlwaysPreserve = false, |
||
| unsigned | Flags = 0, |
||
| unsigned | ArgNo = 0 |
||
| ) |
Create a new descriptor for the specified local variable.
| Tag | Dwarf TAG. Usually DW_TAG_auto_variable or DW_TAG_arg_variable. |
| Scope | Variable scope. |
| Name | Variable name. |
| File | File where this variable is defined. |
| LineNo | Line number. |
| Ty | Variable Type |
| AlwaysPreserve | Boolean. Set to true if debug info for this variable should be preserved in optimized build. |
| Flags | Flags, e.g. artificial variable. |
| ArgNo | If this variable is an argument then this argument's number. 1 indicates 1st argument. |
Definition at line 593 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), llvm::getDISubprogram(), and getNonCompileUnitScope().
| DIDerivedType * DIBuilder::createMemberPointerType | ( | DIType * | PointeeTy, |
| DIType * | Class, | ||
| uint64_t | SizeInBits, | ||
| uint64_t | AlignInBits = 0 |
||
| ) |
Create debugging information entry for a pointer to member.
| PointeeTy | Type pointed to by this pointer. |
| SizeInBits | Size. |
| AlignInBits | Alignment. (optional) |
| Class | Type for which this pointer points to members of. |
Definition at line 248 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), and llvm::MDNode::get().
| DIDerivedType * DIBuilder::createMemberType | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| DIFile * | File, | ||
| unsigned | LineNo, | ||
| uint64_t | SizeInBits, | ||
| uint64_t | AlignInBits, | ||
| uint64_t | OffsetInBits, | ||
| unsigned | Flags, | ||
| DIType * | Ty | ||
| ) |
Create debugging information entry for a member.
| Scope | Member scope. |
| Name | Member name. |
| File | File where this member is defined. |
| LineNo | Line number. |
| SizeInBits | Member size. |
| AlignInBits | Member alignment. |
| OffsetInBits | Member offset. |
| Flags | Flags to encode member attribute, e.g. private |
| Ty | Parent type. |
Definition at line 290 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), and getNonCompileUnitScope().
| DISubprogram * DIBuilder::createMethod | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| StringRef | LinkageName, | ||
| DIFile * | File, | ||
| unsigned | LineNo, | ||
| DISubroutineType * | Ty, | ||
| bool | isLocalToUnit, | ||
| bool | isDefinition, | ||
| unsigned | Virtuality = 0, |
||
| unsigned | VTableIndex = 0, |
||
| DIType * | VTableHolder = nullptr, |
||
| unsigned | Flags = 0, |
||
| bool | isOptimized = false, |
||
| Function * | Fn = nullptr, |
||
| MDNode * | TParam = nullptr |
||
| ) |
Create a new descriptor for the specified C++ method.
See comments in DISubprogram* for descriptions of these fields.
| Scope | Function scope. |
| Name | Function name. |
| LinkageName | Mangled function name. |
| File | File where this variable is defined. |
| LineNo | Line number. |
| Ty | Function type. |
| isLocalToUnit | True if this function is not externally visible.. |
| isDefinition | True if this is a function definition. |
| Virtuality | Attributes describing virtualness. e.g. pure virtual function. |
| VTableIndex | Index no of this method in virtual table. |
| VTableHolder | Type that holds vtable. |
| Flags | e.g. is this function prototyped or not. This flags are used to emit dwarf attributes. |
| isOptimized | True if optimization is ON. |
| Fn | llvm::Function pointer. |
| TParam | Function template parameters. |
Definition at line 684 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), getNonCompileUnitScope(), llvm::DINode::getTag(), and llvm::SP.
| DIModule * DIBuilder::createModule | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| StringRef | ConfigurationMacros, | ||
| StringRef | IncludePath, | ||
| StringRef | ISysRoot | ||
| ) |
This creates new descriptor for a module with the specified parent scope.
| Scope | Parent scope |
| Name | Name of this module |
| ConfigurationMacros | A space-separated shell-quoted list of -D macro definitions as they would appear on a command line. |
| IncludePath | The path to the module map file. |
| ISysRoot | The clang system root (value of -isysroot). |
Definition at line 713 of file DIBuilder.cpp.
References llvm::MDNode::get(), and getNonCompileUnitScope().
| DINamespace * DIBuilder::createNameSpace | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| DIFile * | File, | ||
| unsigned | LineNo | ||
| ) |
This creates new descriptor for a namespace with the specified parent scope.
| Scope | Namespace scope |
| Name | Name of this namespace |
| File | Source file |
| LineNo | Line number |
Definition at line 707 of file DIBuilder.cpp.
References llvm::MDNode::get(), and getNonCompileUnitScope().
| DIBasicType * DIBuilder::createNullPtrType | ( | ) |
Create C++11 nullptr type.
Definition at line 221 of file DIBuilder.cpp.
References createUnspecifiedType().
| DIDerivedType * DIBuilder::createObjCIVar | ( | StringRef | Name, |
| DIFile * | File, | ||
| unsigned | LineNo, | ||
| uint64_t | SizeInBits, | ||
| uint64_t | AlignInBits, | ||
| uint64_t | OffsetInBits, | ||
| unsigned | Flags, | ||
| DIType * | Ty, | ||
| MDNode * | PropertyNode | ||
| ) |
Create debugging information entry for Objective-C instance variable.
| Name | Member name. |
| File | File where this member is defined. |
| LineNo | Line number. |
| SizeInBits | Member size. |
| AlignInBits | Member alignment. |
| OffsetInBits | Member offset. |
| Flags | Flags to encode member attribute, e.g. private |
| Ty | Parent type. |
| PropertyNode | Property associated with this ivar. |
Definition at line 320 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), and getNonCompileUnitScope().
| DIObjCProperty * DIBuilder::createObjCProperty | ( | StringRef | Name, |
| DIFile * | File, | ||
| unsigned | LineNumber, | ||
| StringRef | GetterName, | ||
| StringRef | SetterName, | ||
| unsigned | PropertyAttributes, | ||
| DIType * | Ty | ||
| ) |
Create debugging information entry for Objective-C property.
| Name | Property name. |
| File | File where this property is defined. |
| LineNumber | Line number. |
| GetterName | Name of the Objective C property getter selector. |
| SetterName | Name of the Objective C property setter selector. |
| PropertyAttributes | Objective C property attributes. |
| Ty | Type. |
Definition at line 333 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), and llvm::MDNode::get().
Create a new DIType* with the "object pointer" flag set.
Definition at line 489 of file DIBuilder.cpp.
References createTypeWithFlags(), and llvm::DIType::isObjectPointer().
| DIDerivedType * DIBuilder::createPointerType | ( | DIType * | PointeeTy, |
| uint64_t | SizeInBits, | ||
| uint64_t | AlignInBits = 0, |
||
| StringRef | Name = "" |
||
| ) |
Create debugging information entry for a pointer.
| PointeeTy | Type pointed by this pointer. |
| SizeInBits | Size. |
| AlignInBits | Alignment. (optional) |
| Name | Pointer type name. (optional) |
Definition at line 238 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), and llvm::MDNode::get().
| DIDerivedType * DIBuilder::createQualifiedType | ( | unsigned | Tag, |
| DIType * | FromTy | ||
| ) |
Create debugging information entry for a qualified type, e.g.
'const int'.
| Tag | Tag identifing type, e.g. dwarf::TAG_volatile_type |
| FromTy | Base Type. |
Definition at line 233 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), and llvm::MDNode::get().
| DIDerivedType * DIBuilder::createReferenceType | ( | unsigned | Tag, |
| DIType * | RTy | ||
| ) |
Create debugging information entry for a c++ style reference or rvalue reference type.
Definition at line 258 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), and llvm::MDNode::get().
| DICompositeType * DIBuilder::createReplaceableCompositeType | ( | unsigned | Tag, |
| StringRef | Name, | ||
| DIScope * | Scope, | ||
| DIFile * | F, | ||
| unsigned | Line, | ||
| unsigned | RuntimeLang = 0, |
||
| uint64_t | SizeInBits = 0, |
||
| uint64_t | AlignInBits = 0, |
||
| unsigned | Flags = DINode::FlagFwdDecl, |
||
| StringRef | UniqueIdentifier = "" |
||
| ) |
Create a temporary forward-declared type.
Definition at line 522 of file DIBuilder.cpp.
References llvm::StringRef::empty(), llvm::TypedDINodeRef< T >::get(), getNonCompileUnitScope(), llvm::MDNode::getTemporary(), and retainType().
| DIDerivedType * DIBuilder::createStaticMemberType | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| DIFile * | File, | ||
| unsigned | LineNo, | ||
| DIType * | Ty, | ||
| unsigned | Flags, | ||
| llvm::Constant * | Val | ||
| ) |
Create debugging information entry for a C++ static data member.
| Scope | Member scope. |
| Name | Member name. |
| File | File where this member is declared. |
| LineNo | Line number. |
| Ty | Type of the static member. |
| Flags | Flags to encode member attribute, e.g. private. |
| Val | Const initializer of the member. |
Definition at line 308 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), getConstantOrNull(), and getNonCompileUnitScope().
| DICompositeType * DIBuilder::createStructType | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| DIFile * | File, | ||
| unsigned | LineNumber, | ||
| uint64_t | SizeInBits, | ||
| uint64_t | AlignInBits, | ||
| unsigned | Flags, | ||
| DIType * | DerivedFrom, | ||
| DINodeArray | Elements, | ||
| unsigned | RunTimeLang = 0, |
||
| DIType * | VTableHolder = nullptr, |
||
| StringRef | UniqueIdentifier = "" |
||
| ) |
Create debugging information entry for a struct.
| Scope | Scope in which this struct is defined. |
| Name | Struct name. |
| File | File where this member is defined. |
| LineNumber | Line number. |
| SizeInBits | Member size. |
| AlignInBits | Member alignment. |
| Flags | Flags to encode member attribute, e.g. private |
| Elements | Struct elements. |
| RunTimeLang | Optional parameter, Objective-C runtime version. |
| UniqueIdentifier | A unique identifier for the struct. |
Definition at line 401 of file DIBuilder.cpp.
References llvm::StringRef::empty(), llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), getNonCompileUnitScope(), and retainType().
| DISubroutineType * DIBuilder::createSubroutineType | ( | DIFile * | File, |
| DITypeRefArray | ParameterTypes, | ||
| unsigned | Flags = 0 |
||
| ) |
Create subroutine type.
| File | File in which this subroutine is defined. |
| ParameterTypes | An array of subroutine parameter types. This includes return type at 0th index. |
| Flags | E.g.: LValueReference. These flags are used to emit dwarf attributes. |
Definition at line 432 of file DIBuilder.cpp.
References llvm::MDNode::get().
| DISubprogram * DIBuilder::createTempFunctionFwdDecl | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| StringRef | LinkageName, | ||
| DIFile * | File, | ||
| unsigned | LineNo, | ||
| DISubroutineType * | Ty, | ||
| bool | isLocalToUnit, | ||
| bool | isDefinition, | ||
| unsigned | ScopeLine, | ||
| unsigned | Flags = 0, |
||
| bool | isOptimized = false, |
||
| Function * | Fn = nullptr, |
||
| MDNode * | TParam = nullptr, |
||
| MDNode * | Decl = nullptr |
||
| ) |
Identical to createFunction, except that the resulting DbgNode is meant to be RAUWed.
Definition at line 669 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), getNonCompileUnitScope(), and llvm::MDNode::getTemporary().
| DIGlobalVariable * DIBuilder::createTempGlobalVariableFwdDecl | ( | DIScope * | Context, |
| StringRef | Name, | ||
| StringRef | LinkageName, | ||
| DIFile * | File, | ||
| unsigned | LineNo, | ||
| DIType * | Ty, | ||
| bool | isLocalToUnit, | ||
| llvm::Constant * | Val, | ||
| MDNode * | Decl = nullptr |
||
| ) |
Identical to createGlobalVariable except that the resulting DbgNode is temporary and meant to be RAUWed.
Definition at line 580 of file DIBuilder.cpp.
References checkGlobalVariableScope(), llvm::TypedDINodeRef< T >::get(), and llvm::MDNode::getTemporary().
| DITemplateValueParameter * DIBuilder::createTemplateParameterPack | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| DIType * | Ty, | ||
| DINodeArray | Val | ||
| ) |
Create debugging information for a template parameter pack.
| Scope | Scope in which this type is defined. |
| Name | Value parameter name. |
| Ty | Parameter type. |
| Val | An array of types in the pack. |
Definition at line 374 of file DIBuilder.cpp.
References createTemplateValueParameterHelper(), and llvm::MDNode::get().
| DITemplateValueParameter * DIBuilder::createTemplateTemplateParameter | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| DIType * | Ty, | ||
| StringRef | Val | ||
| ) |
Create debugging information for a template template parameter.
| Scope | Scope in which this type is defined. |
| Name | Value parameter name. |
| Ty | Parameter type. |
| Val | The fully qualified name of the template. |
Definition at line 366 of file DIBuilder.cpp.
References createTemplateValueParameterHelper(), and llvm::MDString::get().
| DITemplateTypeParameter * DIBuilder::createTemplateTypeParameter | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| DIType * | Ty | ||
| ) |
Create debugging information for template type parameter.
| Scope | Scope in which this type is defined. |
| Name | Type parameter name. |
| Ty | Parameter type. |
Definition at line 342 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), and llvm::MDNode::get().
| DITemplateValueParameter * DIBuilder::createTemplateValueParameter | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| DIType * | Ty, | ||
| Constant * | Val | ||
| ) |
Create debugging information for template value parameter.
| Scope | Scope in which this type is defined. |
| Name | Value parameter name. |
| Ty | Parameter type. |
| Val | Constant parameter value. |
Definition at line 358 of file DIBuilder.cpp.
References createTemplateValueParameterHelper(), and getConstantOrNull().
| DIDerivedType * DIBuilder::createTypedef | ( | DIType * | Ty, |
| StringRef | Name, | ||
| DIFile * | File, | ||
| unsigned | LineNo, | ||
| DIScope * | Context | ||
| ) |
Create debugging information entry for a typedef.
| Ty | Original type. |
| Name | Typedef name. |
| File | File where this type is defined. |
| LineNo | Line number. |
| Context | The surrounding context for the typedef. |
Definition at line 264 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), and getNonCompileUnitScope().
| DICompositeType * DIBuilder::createUnionType | ( | DIScope * | Scope, |
| StringRef | Name, | ||
| DIFile * | File, | ||
| unsigned | LineNumber, | ||
| uint64_t | SizeInBits, | ||
| uint64_t | AlignInBits, | ||
| unsigned | Flags, | ||
| DINodeArray | Elements, | ||
| unsigned | RunTimeLang = 0, |
||
| StringRef | UniqueIdentifier = "" |
||
| ) |
Create debugging information entry for an union.
| Scope | Scope in which this union is defined. |
| Name | Union name. |
| File | File where this member is defined. |
| LineNumber | Line number. |
| SizeInBits | Member size. |
| AlignInBits | Member alignment. |
| Flags | Flags to encode member attribute, e.g. private |
| Elements | Union elements. |
| RunTimeLang | Optional parameter, Objective-C runtime version. |
| UniqueIdentifier | A unique identifier for the union. |
Definition at line 417 of file DIBuilder.cpp.
References llvm::StringRef::empty(), llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), getNonCompileUnitScope(), and retainType().
| DIBasicType * DIBuilder::createUnspecifiedParameter | ( | ) |
Create unspecified parameter type for a subroutine type.
Definition at line 502 of file DIBuilder.cpp.
| DIBasicType * DIBuilder::createUnspecifiedType | ( | StringRef | Name | ) |
Create a DWARF unspecified type.
Definition at line 216 of file DIBuilder.cpp.
References llvm::StringRef::empty(), and llvm::MDNode::get().
Referenced by createNullPtrType().
| DICompositeType * DIBuilder::createVectorType | ( | uint64_t | Size, |
| uint64_t | AlignInBits, | ||
| DIType * | Ty, | ||
| DINodeArray | Subscripts | ||
| ) |
Create debugging information entry for a vector type.
| Size | Array size. |
| AlignInBits | Alignment. |
| Ty | Element type. |
| Subscripts | Subscripts. |
Definition at line 464 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), and llvm::MDNode::get().
| void DIBuilder::finalize | ( | ) |
Construct any deferred debug info descriptors.
Definition at line 75 of file DIBuilder.cpp.
References llvm::SmallVectorBase::empty(), llvm::MDTuple::get(), getOrCreateArray(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::MDNode::isResolved(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::DICompileUnit::replaceEnumTypes(), llvm::DICompileUnit::replaceGlobalVariables(), llvm::DICompileUnit::replaceImportedEntities(), llvm::DICompileUnit::replaceRetainedTypes(), llvm::DICompileUnit::replaceSubprograms(), llvm::MDNode::resolveCycles(), and llvm::SP.
Get a DINodeArray, create one if required.
Definition at line 538 of file DIBuilder.cpp.
References llvm::MDTuple::get().
Referenced by finalize().
| DISubrange * DIBuilder::getOrCreateSubrange | ( | int64_t | Lo, |
| int64_t | Count | ||
| ) |
Create a descriptor for a value range.
This implicitly uniques the values returned.
Definition at line 553 of file DIBuilder.cpp.
References llvm::MDNode::get().
| DITypeRefArray DIBuilder::getOrCreateTypeArray | ( | ArrayRef< Metadata * > | Elements | ) |
Get a DITypeRefArray, create one if required.
Definition at line 542 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), llvm::MDNode::get(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), and llvm::ArrayRef< T >::size().
| Instruction * DIBuilder::insertDbgValueIntrinsic | ( | llvm::Value * | Val, |
| uint64_t | Offset, | ||
| DILocalVariable * | VarInfo, | ||
| DIExpression * | Expr, | ||
| const DILocation * | DL, | ||
| BasicBlock * | InsertAtEnd | ||
| ) |
Insert a new llvm.dbg.value intrinsic call.
| Val | llvm::Value of the variable |
| Offset | Offset |
| VarInfo | Variable's debug info descriptor. |
| Expr | A complex location expression. |
| DL | Debug info location. |
| InsertAtEnd | Location for the new intrinsic. |
Definition at line 811 of file DIBuilder.cpp.
References llvm::CallInst::Create(), llvm::ConstantInt::get(), llvm::MetadataAsValue::get(), getDbgIntrinsicValueImpl(), llvm::Intrinsic::getDeclaration(), llvm::Type::getInt64Ty(), llvm::DILocalVariable::getScope(), llvm::DILocalScope::getSubprogram(), and withDebugLoc().
Referenced by llvm::ConvertDebugDeclareToDebugValue().
| Instruction * DIBuilder::insertDbgValueIntrinsic | ( | llvm::Value * | Val, |
| uint64_t | Offset, | ||
| DILocalVariable * | VarInfo, | ||
| DIExpression * | Expr, | ||
| const DILocation * | DL, | ||
| Instruction * | InsertBefore | ||
| ) |
Insert a new llvm.dbg.value intrinsic call.
| Val | llvm::Value of the variable |
| Offset | Offset |
| VarInfo | Variable's debug info descriptor. |
| Expr | A complex location expression. |
| DL | Debug info location. |
| InsertBefore | Location for the new intrinsic. |
Definition at line 788 of file DIBuilder.cpp.
References llvm::CallInst::Create(), llvm::ConstantInt::get(), llvm::MetadataAsValue::get(), getDbgIntrinsicValueImpl(), llvm::Intrinsic::getDeclaration(), llvm::Type::getInt64Ty(), llvm::DILocalVariable::getScope(), llvm::DILocalScope::getSubprogram(), and withDebugLoc().
| Instruction * DIBuilder::insertDeclare | ( | llvm::Value * | Storage, |
| DILocalVariable * | VarInfo, | ||
| DIExpression * | Expr, | ||
| const DILocation * | DL, | ||
| BasicBlock * | InsertAtEnd | ||
| ) |
Insert a new llvm.dbg.declare intrinsic call.
| Storage | llvm::Value of the variable |
| VarInfo | Variable's debug info descriptor. |
| Expr | A complex location expression. |
| DL | Debug info location. |
| InsertAtEnd | Location for the new intrinsic. |
Definition at line 764 of file DIBuilder.cpp.
References llvm::CallInst::Create(), llvm::DL, llvm::MetadataAsValue::get(), getDbgIntrinsicValueImpl(), llvm::Intrinsic::getDeclaration(), llvm::DILocalVariable::getScope(), llvm::DILocalScope::getSubprogram(), llvm::BasicBlock::getTerminator(), and withDebugLoc().
Referenced by llvm::replaceDbgDeclareForAlloca().
| Instruction * DIBuilder::insertDeclare | ( | llvm::Value * | Storage, |
| DILocalVariable * | VarInfo, | ||
| DIExpression * | Expr, | ||
| const DILocation * | DL, | ||
| Instruction * | InsertBefore | ||
| ) |
Insert a new llvm.dbg.declare intrinsic call.
| Storage | llvm::Value of the variable |
| VarInfo | Variable's debug info descriptor. |
| Expr | A complex location expression. |
| DL | Debug info location. |
| InsertBefore | Location for the new intrinsic. |
Definition at line 745 of file DIBuilder.cpp.
References llvm::CallInst::Create(), llvm::MetadataAsValue::get(), getDbgIntrinsicValueImpl(), llvm::Intrinsic::getDeclaration(), llvm::DILocalVariable::getScope(), llvm::DILocalScope::getSubprogram(), and withDebugLoc().
| void DIBuilder::replaceArrays | ( | DICompositeType *& | T, |
| DINodeArray | Elements, | ||
| DINodeArray | TParems = DINodeArray() |
||
| ) |
Replace arrays on a composite type.
If T is resolved, but the arrays aren't – which can happen if T has a self-reference – DIBuilder needs to track the array to resolve cycles.
Definition at line 855 of file DIBuilder.cpp.
References llvm::TypedTrackingMDRef< T >::get(), llvm::MDNode::isResolved(), N, llvm::DICompositeTypeBase::replaceElements(), and llvm::DICompositeTypeBase::replaceTemplateParams().
|
inline |
Replace a temporary node.
Call MDNode::replaceAllUsesWith() on N, replacing it with Replacement.
If Replacement is the same as N.get(), instead call MDNode::replaceWithUniqued(). In this case, the uniqued node could have a different address, so we return the final address.
Definition at line 699 of file DIBuilder.h.
References llvm::MDNode::get(), llvm::MDNode::replaceAllUsesWith(), and llvm::MDNode::replaceWithUniqued().
| void DIBuilder::replaceVTableHolder | ( | DICompositeType *& | T, |
| DICompositeType * | VTableHolder | ||
| ) |
Replace the vtable holder in the given composite type.
If this creates a self reference, it may orphan some unresolved cycles in the operands of T, so DIBuilder needs to track that.
Definition at line 835 of file DIBuilder.cpp.
References llvm::TypedDINodeRef< T >::get(), llvm::TypedTrackingMDRef< T >::get(), llvm::MDNode::isResolved(), N, llvm::MDNode::operands(), and llvm::DICompositeTypeBase::replaceVTableHolder().
| void DIBuilder::retainType | ( | DIType * | T | ) |
Retain DIType* in a module even if it is not referenced through debug info anchors.
Definition at line 497 of file DIBuilder.cpp.
Referenced by createClassType(), createEnumerationType(), createForwardDecl(), createReplaceableCompositeType(), createStructType(), and createUnionType().
1.8.6