class DIBuilder
Declaration
class DIBuilder { /* full declaration omitted */ };
Declared at: llvm/include/llvm/IR/DIBuilder.h:41
Method Overview
- public DIBuilder(const llvm::DIBuilder &)
- public DIBuilder(llvm::Module & M, bool AllowUnresolved = true, llvm::DICompileUnit * CU = nullptr)
- public llvm::DICompositeType * createArrayType(uint64_t Size, uint32_t AlignInBits, llvm::DIType * Ty, llvm::DINodeArray Subscripts)
- public static llvm::DISubprogram * createArtificialSubprogram(llvm::DISubprogram * SP)
- public static llvm::DIType * createArtificialType(llvm::DIType * Ty)
- public llvm::DILocalVariable * createAutoVariable(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNo, llvm::DIType * Ty, bool AlwaysPreserve = false, DINode::DIFlags Flags = DINode::FlagZero, uint32_t AlignInBits = 0)
- public llvm::DIBasicType * createBasicType(llvm::StringRef Name, uint64_t SizeInBits, unsigned int Encoding, DINode::DIFlags Flags = DINode::FlagZero)
- public llvm::DIDerivedType * createBitFieldMemberType(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNo, uint64_t SizeInBits, uint64_t OffsetInBits, uint64_t StorageOffsetInBits, DINode::DIFlags Flags, llvm::DIType * Ty)
- public llvm::DICompositeType * createClassType(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits, DINode::DIFlags Flags, llvm::DIType * DerivedFrom, llvm::DINodeArray Elements, llvm::DIType * VTableHolder = nullptr, llvm::MDNode * TemplateParms = nullptr, llvm::StringRef UniqueIdentifier = "")
- public llvm::DICommonBlock * createCommonBlock(llvm::DIScope * Scope, llvm::DIGlobalVariable * decl, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNo)
- public llvm::DICompileUnit * createCompileUnit(unsigned int Lang, llvm::DIFile * File, llvm::StringRef Producer, bool isOptimized, llvm::StringRef Flags, unsigned int RV, llvm::StringRef SplitName = llvm::StringRef(), DICompileUnit::DebugEmissionKind Kind = DICompileUnit::DebugEmissionKind::FullDebug, uint64_t DWOId = 0, bool SplitDebugInlining = true, bool DebugInfoForProfiling = false, DICompileUnit::DebugNameTableKind NameTableKind = DICompileUnit::DebugNameTableKind::Default, bool RangesBaseAddress = false)
- public llvm::DIExpression * createConstantValueExpression(uint64_t Val)
- public llvm::DICompositeType * createEnumerationType(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, llvm::DINodeArray Elements, llvm::DIType * UnderlyingType, llvm::StringRef UniqueIdentifier = "", bool IsScoped = false)
- public llvm::DIEnumerator * createEnumerator(llvm::StringRef Name, int64_t Val, bool IsUnsigned = false)
- public llvm::DIExpression * createExpression(ArrayRef<uint64_t> Addr = None)
- public llvm::DIExpression * createExpression(ArrayRef<int64_t> Addr)
- public llvm::DIFile * createFile(llvm::StringRef Filename, llvm::StringRef Directory, Optional<DIFile::ChecksumInfo<StringRef>> Checksum = None, Optional<llvm::StringRef> Source = None)
- public llvm::DICompositeType * createForwardDecl(unsigned int Tag, llvm::StringRef Name, llvm::DIScope * Scope, llvm::DIFile * F, unsigned int Line, unsigned int RuntimeLang = 0, uint64_t SizeInBits = 0, uint32_t AlignInBits = 0, llvm::StringRef UniqueIdentifier = "")
- public llvm::DIDerivedType * createFriend(llvm::DIType * Ty, llvm::DIType * FriendTy)
- public llvm::DISubprogram * createFunction(llvm::DIScope * Scope, llvm::StringRef Name, llvm::StringRef LinkageName, llvm::DIFile * File, unsigned int LineNo, llvm::DISubroutineType * Ty, unsigned int ScopeLine, DINode::DIFlags Flags = DINode::FlagZero, DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero, llvm::DITemplateParameterArray TParams = nullptr, llvm::DISubprogram * Decl = nullptr, llvm::DITypeArray ThrownTypes = nullptr)
- public llvm::DIGlobalVariableExpression * createGlobalVariableExpression(llvm::DIScope * Context, llvm::StringRef Name, llvm::StringRef LinkageName, llvm::DIFile * File, unsigned int LineNo, llvm::DIType * Ty, bool IsLocalToUnit, bool isDefined = true, llvm::DIExpression * Expr = nullptr, llvm::MDNode * Decl = nullptr, llvm::MDTuple * TemplateParams = nullptr, uint32_t AlignInBits = 0)
- public llvm::DIImportedEntity * createImportedDeclaration(llvm::DIScope * Context, llvm::DINode * Decl, llvm::DIFile * File, unsigned int Line, llvm::StringRef Name = "")
- public llvm::DIImportedEntity * createImportedModule(llvm::DIScope * Context, llvm::DIModule * M, llvm::DIFile * File, unsigned int Line)
- public llvm::DIImportedEntity * createImportedModule(llvm::DIScope * Context, llvm::DINamespace * NS, llvm::DIFile * File, unsigned int Line)
- public llvm::DIImportedEntity * createImportedModule(llvm::DIScope * Context, llvm::DIImportedEntity * NS, llvm::DIFile * File, unsigned int Line)
- public llvm::DIDerivedType * createInheritance(llvm::DIType * Ty, llvm::DIType * BaseTy, uint64_t BaseOffset, uint32_t VBPtrOffset, DINode::DIFlags Flags)
- public llvm::DILabel * createLabel(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNo, bool AlwaysPreserve = false)
- public llvm::DILexicalBlock * createLexicalBlock(llvm::DIScope * Scope, llvm::DIFile * File, unsigned int Line, unsigned int Col)
- public llvm::DILexicalBlockFile * createLexicalBlockFile(llvm::DIScope * Scope, llvm::DIFile * File, unsigned int Discriminator = 0)
- public llvm::DIMacro * createMacro(llvm::DIMacroFile * Parent, unsigned int Line, unsigned int MacroType, llvm::StringRef Name, llvm::StringRef Value = llvm::StringRef())
- public llvm::DIDerivedType * createMemberPointerType(llvm::DIType * PointeeTy, llvm::DIType * Class, uint64_t SizeInBits, uint32_t AlignInBits = 0, DINode::DIFlags Flags = DINode::FlagZero)
- public llvm::DIDerivedType * createMemberType(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNo, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits, DINode::DIFlags Flags, llvm::DIType * Ty)
- public llvm::DISubprogram * createMethod(llvm::DIScope * Scope, llvm::StringRef Name, llvm::StringRef LinkageName, llvm::DIFile * File, unsigned int LineNo, llvm::DISubroutineType * Ty, unsigned int VTableIndex = 0, int ThisAdjustment = 0, llvm::DIType * VTableHolder = nullptr, DINode::DIFlags Flags = DINode::FlagZero, DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero, llvm::DITemplateParameterArray TParams = nullptr, llvm::DITypeArray ThrownTypes = nullptr)
- public llvm::DIModule * createModule(llvm::DIScope * Scope, llvm::StringRef Name, llvm::StringRef ConfigurationMacros, llvm::StringRef IncludePath, llvm::StringRef SysRoot)
- public llvm::DINamespace * createNameSpace(llvm::DIScope * Scope, llvm::StringRef Name, bool ExportSymbols)
- public llvm::DIBasicType * createNullPtrType()
- public llvm::DIDerivedType * createObjCIVar(llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNo, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits, DINode::DIFlags Flags, llvm::DIType * Ty, llvm::MDNode * PropertyNode)
- public llvm::DIObjCProperty * createObjCProperty(llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNumber, llvm::StringRef GetterName, llvm::StringRef SetterName, unsigned int PropertyAttributes, llvm::DIType * Ty)
- public static llvm::DIType * createObjectPointerType(llvm::DIType * Ty)
- public llvm::DILocalVariable * createParameterVariable(llvm::DIScope * Scope, llvm::StringRef Name, unsigned int ArgNo, llvm::DIFile * File, unsigned int LineNo, llvm::DIType * Ty, bool AlwaysPreserve = false, DINode::DIFlags Flags = DINode::FlagZero)
- public llvm::DIDerivedType * createPointerType(llvm::DIType * PointeeTy, uint64_t SizeInBits, uint32_t AlignInBits = 0, Optional<unsigned int> DWARFAddressSpace = None, llvm::StringRef Name = "")
- public llvm::DIDerivedType * createQualifiedType(unsigned int Tag, llvm::DIType * FromTy)
- public llvm::DIDerivedType * createReferenceType(unsigned int Tag, llvm::DIType * RTy, uint64_t SizeInBits = 0, uint32_t AlignInBits = 0, Optional<unsigned int> DWARFAddressSpace = None)
- public llvm::DICompositeType * createReplaceableCompositeType(unsigned int Tag, llvm::StringRef Name, llvm::DIScope * Scope, llvm::DIFile * F, unsigned int Line, unsigned int RuntimeLang = 0, uint64_t SizeInBits = 0, uint32_t AlignInBits = 0, DINode::DIFlags Flags = DINode::FlagFwdDecl, llvm::StringRef UniqueIdentifier = "")
- public llvm::DIDerivedType * createStaticMemberType(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNo, llvm::DIType * Ty, DINode::DIFlags Flags, llvm::Constant * Val, uint32_t AlignInBits = 0)
- public llvm::DICompositeType * createStructType(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, DINode::DIFlags Flags, llvm::DIType * DerivedFrom, llvm::DINodeArray Elements, unsigned int RunTimeLang = 0, llvm::DIType * VTableHolder = nullptr, llvm::StringRef UniqueIdentifier = "")
- public llvm::DISubroutineType * createSubroutineType(llvm::DITypeRefArray ParameterTypes, DINode::DIFlags Flags = DINode::FlagZero, unsigned int CC = 0)
- public llvm::DISubprogram * createTempFunctionFwdDecl(llvm::DIScope * Scope, llvm::StringRef Name, llvm::StringRef LinkageName, llvm::DIFile * File, unsigned int LineNo, llvm::DISubroutineType * Ty, unsigned int ScopeLine, DINode::DIFlags Flags = DINode::FlagZero, DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero, llvm::DITemplateParameterArray TParams = nullptr, llvm::DISubprogram * Decl = nullptr, llvm::DITypeArray ThrownTypes = nullptr)
- public llvm::DIGlobalVariable * createTempGlobalVariableFwdDecl(llvm::DIScope * Context, llvm::StringRef Name, llvm::StringRef LinkageName, llvm::DIFile * File, unsigned int LineNo, llvm::DIType * Ty, bool IsLocalToUnit, llvm::MDNode * Decl = nullptr, llvm::MDTuple * TemplateParams = nullptr, uint32_t AlignInBits = 0)
- public llvm::DIMacroFile * createTempMacroFile(llvm::DIMacroFile * Parent, unsigned int Line, llvm::DIFile * File)
- public llvm::DITemplateValueParameter * createTemplateParameterPack(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIType * Ty, llvm::DINodeArray Val)
- public llvm::DITemplateValueParameter * createTemplateTemplateParameter(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIType * Ty, llvm::StringRef Val)
- public llvm::DITemplateTypeParameter * createTemplateTypeParameter(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIType * Ty)
- public llvm::DITemplateValueParameter * createTemplateValueParameter(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIType * Ty, llvm::Constant * Val)
- public llvm::DIDerivedType * createTypedef(llvm::DIType * Ty, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNo, llvm::DIScope * Context, uint32_t AlignInBits = 0)
- public llvm::DICompositeType * createUnionType(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, DINode::DIFlags Flags, llvm::DINodeArray Elements, unsigned int RunTimeLang = 0, llvm::StringRef UniqueIdentifier = "")
- public llvm::DIBasicType * createUnspecifiedParameter()
- public llvm::DIBasicType * createUnspecifiedType(llvm::StringRef Name)
- public llvm::DIDerivedType * createVariantMemberType(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNo, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits, llvm::Constant * Discriminant, DINode::DIFlags Flags, llvm::DIType * Ty)
- public llvm::DICompositeType * createVariantPart(llvm::DIScope * Scope, llvm::StringRef Name, llvm::DIFile * File, unsigned int LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, DINode::DIFlags Flags, llvm::DIDerivedType * Discriminator, llvm::DINodeArray Elements, llvm::StringRef UniqueIdentifier = "")
- public llvm::DICompositeType * createVectorType(uint64_t Size, uint32_t AlignInBits, llvm::DIType * Ty, llvm::DINodeArray Subscripts)
- public void finalize()
- public void finalizeSubprogram(llvm::DISubprogram * SP)
- public llvm::DINodeArray getOrCreateArray(ArrayRef<llvm::Metadata *> Elements)
- public llvm::DIMacroNodeArray getOrCreateMacroArray(ArrayRef<llvm::Metadata *> Elements)
- public llvm::DISubrange * getOrCreateSubrange(int64_t Lo, int64_t Count)
- public llvm::DISubrange * getOrCreateSubrange(int64_t Lo, llvm::Metadata * CountNode)
- public llvm::DITypeRefArray getOrCreateTypeArray(ArrayRef<llvm::Metadata *> Elements)
- public llvm::Instruction * insertDbgValueIntrinsic(llvm::Value * Val, llvm::DILocalVariable * VarInfo, llvm::DIExpression * Expr, const llvm::DILocation * DL, llvm::Instruction * InsertBefore)
- public llvm::Instruction * insertDbgValueIntrinsic(llvm::Value * Val, llvm::DILocalVariable * VarInfo, llvm::DIExpression * Expr, const llvm::DILocation * DL, llvm::BasicBlock * InsertAtEnd)
- public llvm::Instruction * insertDeclare(llvm::Value * Storage, llvm::DILocalVariable * VarInfo, llvm::DIExpression * Expr, const llvm::DILocation * DL, llvm::BasicBlock * InsertAtEnd)
- public llvm::Instruction * insertDeclare(llvm::Value * Storage, llvm::DILocalVariable * VarInfo, llvm::DIExpression * Expr, const llvm::DILocation * DL, llvm::Instruction * InsertBefore)
- public llvm::Instruction * insertLabel(llvm::DILabel * LabelInfo, const llvm::DILocation * DL, llvm::Instruction * InsertBefore)
- public llvm::Instruction * insertLabel(llvm::DILabel * LabelInfo, const llvm::DILocation * DL, llvm::BasicBlock * InsertAtEnd)
- public void replaceArrays(llvm::DICompositeType *& T, llvm::DINodeArray Elements, llvm::DINodeArray TParams = llvm::MDTupleTypedArrayWrapper<llvm::DINode>())
- public template <class NodeTy>NodeTy * replaceTemporary(llvm::TempMDNode && N, NodeTy * Replacement)
- public void replaceVTableHolder(llvm::DICompositeType *& T, llvm::DIType * VTableHolder)
- public void retainType(llvm::DIScope * T)
Methods
¶DIBuilder(const llvm::DIBuilder&)
DIBuilder(const llvm::DIBuilder&)
Declared at: llvm/include/llvm/IR/DIBuilder.h:104
Parameters
- const llvm::DIBuilder&
¶DIBuilder(llvm::Module& M,
bool AllowUnresolved = true,
llvm::DICompileUnit* CU = nullptr)
DIBuilder(llvm::Module& M,
bool AllowUnresolved = true,
llvm::DICompileUnit* CU = nullptr)
Description
Construct a builder for a module. If \c AllowUnresolved, collect unresolved nodes attached to the module in order to resolve cycles during \a finalize(). If \p CU is given a value other than nullptr, then set \p CUNode to CU.
Declared at: llvm/include/llvm/IR/DIBuilder.h:102
Parameters
- llvm::Module& M
- bool AllowUnresolved = true
- llvm::DICompileUnit* CU = nullptr
¶llvm::DICompositeType* createArrayType(
uint64_t Size,
uint32_t AlignInBits,
llvm::DIType* Ty,
llvm::DINodeArray Subscripts)
llvm::DICompositeType* createArrayType(
uint64_t Size,
uint32_t AlignInBits,
llvm::DIType* Ty,
llvm::DINodeArray Subscripts)
Description
Create debugging information entry for an array.
Declared at: llvm/include/llvm/IR/DIBuilder.h:484
Parameters
- uint64_t Size
- Array size.
- uint32_t AlignInBits
- Alignment.
- llvm::DIType* Ty
- Element type.
- llvm::DINodeArray Subscripts
- Subscripts.
¶static llvm::DISubprogram*
createArtificialSubprogram(llvm::DISubprogram* SP)
static llvm::DISubprogram*
createArtificialSubprogram(llvm::DISubprogram* SP)
Description
Create a distinct clone of \p SP with FlagArtificial set.
Declared at: llvm/include/llvm/IR/DIBuilder.h:524
Parameters
¶static llvm::DIType* createArtificialType(
llvm::DIType* Ty)
static llvm::DIType* createArtificialType(
llvm::DIType* Ty)
Description
Create a uniqued clone of \p Ty with FlagArtificial set.
Declared at: llvm/include/llvm/IR/DIBuilder.h:527
Parameters
- llvm::DIType* Ty
¶llvm::DILocalVariable* createAutoVariable(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIType* Ty,
bool AlwaysPreserve = false,
DINode::DIFlags Flags = DINode::FlagZero,
uint32_t AlignInBits = 0)
llvm::DILocalVariable* createAutoVariable(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIType* Ty,
bool AlwaysPreserve = false,
DINode::DIFlags Flags = DINode::FlagZero,
uint32_t AlignInBits = 0)
Description
Create a new descriptor for an auto variable. This is a local variable that is not a subprogram parameter. \c Scope must be a \a DILocalScope, and thus its scope chain eventually leads to a \a DISubprogram. If \c AlwaysPreserve, this variable will be referenced from its containing subprogram, and will survive some optimizations.
Declared at: llvm/include/llvm/IR/DIBuilder.h:606
Parameters
- llvm::DIScope* Scope
- llvm::StringRef Name
- llvm::DIFile* File
- unsigned int LineNo
- llvm::DIType* Ty
- bool AlwaysPreserve = false
- DINode::DIFlags Flags = DINode::FlagZero
- uint32_t AlignInBits = 0
¶llvm::DIBasicType* createBasicType(
llvm::StringRef Name,
uint64_t SizeInBits,
unsigned int Encoding,
DINode::DIFlags Flags = DINode::FlagZero)
llvm::DIBasicType* createBasicType(
llvm::StringRef Name,
uint64_t SizeInBits,
unsigned int Encoding,
DINode::DIFlags Flags = DINode::FlagZero)
Description
Create debugging information entry for a basic type.
Declared at: llvm/include/llvm/IR/DIBuilder.h:194
Parameters
- llvm::StringRef Name
- Type name.
- uint64_t SizeInBits
- Size of the type.
- unsigned int Encoding
- DWARF encoding code, e.g., dwarf::DW_ATE_float.
- DINode::DIFlags Flags = DINode::FlagZero
- Optional DWARF attributes, e.g., DW_AT_endianity.
¶llvm::DIDerivedType* createBitFieldMemberType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
uint64_t SizeInBits,
uint64_t OffsetInBits,
uint64_t StorageOffsetInBits,
DINode::DIFlags Flags,
llvm::DIType* Ty)
llvm::DIDerivedType* createBitFieldMemberType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
uint64_t SizeInBits,
uint64_t OffsetInBits,
uint64_t StorageOffsetInBits,
DINode::DIFlags Flags,
llvm::DIType* Ty)
Description
Create debugging information entry for a bit field member.
Declared at: llvm/include/llvm/IR/DIBuilder.h:308
Parameters
- llvm::DIScope* Scope
- Member scope.
- llvm::StringRef Name
- Member name.
- llvm::DIFile* File
- File where this member is defined.
- unsigned int LineNo
- Line number.
- uint64_t SizeInBits
- Member size.
- uint64_t OffsetInBits
- Member offset.
- uint64_t StorageOffsetInBits
- Member storage offset.
- DINode::DIFlags Flags
- Flags to encode member attribute.
- llvm::DIType* Ty
- Parent type.
¶llvm::DICompositeType* createClassType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
DINode::DIFlags Flags,
llvm::DIType* DerivedFrom,
llvm::DINodeArray Elements,
llvm::DIType* VTableHolder = nullptr,
llvm::MDNode* TemplateParms = nullptr,
llvm::StringRef UniqueIdentifier = "")
llvm::DICompositeType* createClassType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
DINode::DIFlags Flags,
llvm::DIType* DerivedFrom,
llvm::DINodeArray Elements,
llvm::DIType* VTableHolder = nullptr,
llvm::MDNode* TemplateParms = nullptr,
llvm::StringRef UniqueIdentifier = "")
Description
Create debugging information entry for a class.
Declared at: llvm/include/llvm/IR/DIBuilder.h:376
Parameters
- llvm::DIScope* Scope
- Scope in which this class is defined.
- llvm::StringRef Name
- class name.
- llvm::DIFile* File
- File where this member is defined.
- unsigned int LineNumber
- Line number.
- uint64_t SizeInBits
- Member size.
- uint32_t AlignInBits
- Member alignment.
- uint64_t OffsetInBits
- Member offset.
- DINode::DIFlags Flags
- Flags to encode member attribute, e.g. private
- llvm::DIType* DerivedFrom
- llvm::DINodeArray Elements
- class members.
- llvm::DIType* VTableHolder = nullptr
- 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.
- llvm::MDNode* TemplateParms = nullptr
- Template type parameters.
- llvm::StringRef UniqueIdentifier = ""
- A unique identifier for the class.
¶llvm::DICommonBlock* createCommonBlock(
llvm::DIScope* Scope,
llvm::DIGlobalVariable* decl,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo)
llvm::DICommonBlock* createCommonBlock(
llvm::DIScope* Scope,
llvm::DIGlobalVariable* decl,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo)
Description
Create common block entry for a Fortran common block.
Declared at: llvm/include/llvm/IR/DIBuilder.h:717
Parameters
- llvm::DIScope* Scope
- Scope of this common block.
- llvm::DIGlobalVariable* decl
- Global variable declaration.
- llvm::StringRef Name
- The name of this common block.
- llvm::DIFile* File
- The file this common block is defined.
- unsigned int LineNo
- Line number.
¶llvm::DICompileUnit* createCompileUnit(
unsigned int Lang,
llvm::DIFile* File,
llvm::StringRef Producer,
bool isOptimized,
llvm::StringRef Flags,
unsigned int RV,
llvm::StringRef SplitName = llvm::StringRef(),
DICompileUnit::DebugEmissionKind Kind =
DICompileUnit::DebugEmissionKind::
FullDebug,
uint64_t DWOId = 0,
bool SplitDebugInlining = true,
bool DebugInfoForProfiling = false,
DICompileUnit::DebugNameTableKind
NameTableKind = DICompileUnit::
DebugNameTableKind::Default,
bool RangesBaseAddress = false)
llvm::DICompileUnit* createCompileUnit(
unsigned int Lang,
llvm::DIFile* File,
llvm::StringRef Producer,
bool isOptimized,
llvm::StringRef Flags,
unsigned int RV,
llvm::StringRef SplitName = llvm::StringRef(),
DICompileUnit::DebugEmissionKind Kind =
DICompileUnit::DebugEmissionKind::
FullDebug,
uint64_t DWOId = 0,
bool SplitDebugInlining = true,
bool DebugInfoForProfiling = false,
DICompileUnit::DebugNameTableKind
NameTableKind = DICompileUnit::
DebugNameTableKind::Default,
bool RangesBaseAddress = false)
Description
A CompileUnit provides an anchor for all debugging information generated during this instance of compilation.
Declared at: llvm/include/llvm/IR/DIBuilder.h:139
Parameters
- unsigned int Lang
- Source programming language, eg. dwarf::DW_LANG_C99
- llvm::DIFile* File
- File info.
- llvm::StringRef Producer
- Identify the producer of debugging information and code. Usually this is a compiler version string.
- bool isOptimized
- A boolean flag which indicates whether optimization is enabled or not.
- llvm::StringRef 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.
- unsigned int RV
- This indicates runtime version for languages like Objective-C.
- llvm::StringRef SplitName = llvm::StringRef()
- The name of the file that we'll split debug info out into.
- DICompileUnit::DebugEmissionKind Kind = DICompileUnit::DebugEmissionKind::FullDebug
- The kind of debug information to generate.
- uint64_t DWOId = 0
- The DWOId if this is a split skeleton compile unit.
- bool SplitDebugInlining = true
- Whether to emit inline debug info.
- bool DebugInfoForProfiling = false
- Whether to emit extra debug info for profile collection.
- DICompileUnit::DebugNameTableKind NameTableKind = DICompileUnit::DebugNameTableKind::Default
- Whether to emit .debug_gnu_pubnames, .debug_pubnames, or no pubnames at all.
- bool RangesBaseAddress = false
¶llvm::DIExpression* createConstantValueExpression(
uint64_t Val)
llvm::DIExpression* createConstantValueExpression(
uint64_t Val)
Description
Create an expression for a variable that does not have an address, but does have a constant value.
Declared at: llvm/include/llvm/IR/DIBuilder.h:644
Parameters
- uint64_t Val
¶llvm::DICompositeType* createEnumerationType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
uint64_t SizeInBits,
uint32_t AlignInBits,
llvm::DINodeArray Elements,
llvm::DIType* UnderlyingType,
llvm::StringRef UniqueIdentifier = "",
bool IsScoped = false)
llvm::DICompositeType* createEnumerationType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
uint64_t SizeInBits,
uint32_t AlignInBits,
llvm::DINodeArray Elements,
llvm::DIType* UnderlyingType,
llvm::StringRef UniqueIdentifier = "",
bool IsScoped = false)
Description
Create debugging information entry for an enumeration.
Declared at: llvm/include/llvm/IR/DIBuilder.h:507
Parameters
- llvm::DIScope* Scope
- Scope in which this enumeration is defined.
- llvm::StringRef Name
- Union name.
- llvm::DIFile* File
- File where this member is defined.
- unsigned int LineNumber
- Line number.
- uint64_t SizeInBits
- Member size.
- uint32_t AlignInBits
- Member alignment.
- llvm::DINodeArray Elements
- Enumeration elements.
- llvm::DIType* UnderlyingType
- Underlying type of a C++11/ObjC fixed enum.
- llvm::StringRef UniqueIdentifier = ""
- A unique identifier for the enum.
- bool IsScoped = false
- Boolean flag indicate if this is C++11/ObjC 'enum class'.
¶llvm::DIEnumerator* createEnumerator(
llvm::StringRef Name,
int64_t Val,
bool IsUnsigned = false)
llvm::DIEnumerator* createEnumerator(
llvm::StringRef Name,
int64_t Val,
bool IsUnsigned = false)
Description
Create a single enumerator value.
Declared at: llvm/include/llvm/IR/DIBuilder.h:180
Parameters
- llvm::StringRef Name
- int64_t Val
- bool IsUnsigned = false
¶llvm::DIExpression* createExpression(
ArrayRef<uint64_t> Addr = None)
llvm::DIExpression* createExpression(
ArrayRef<uint64_t> Addr = None)
Description
Create a new descriptor for the specified variable which has a complex address expression for its address.
Declared at: llvm/include/llvm/IR/DIBuilder.h:639
Parameters
- ArrayRef<uint64_t> Addr = None
- An array of complex address operations.
¶llvm::DIExpression* createExpression(
ArrayRef<int64_t> Addr)
llvm::DIExpression* createExpression(
ArrayRef<int64_t> Addr)
Declared at: llvm/include/llvm/IR/DIBuilder.h:640
Parameters
- ArrayRef<int64_t> Addr
¶llvm::DIFile* createFile(
llvm::StringRef Filename,
llvm::StringRef Directory,
Optional<DIFile::ChecksumInfo<StringRef>>
Checksum = None,
Optional<llvm::StringRef> Source = None)
llvm::DIFile* createFile(
llvm::StringRef Filename,
llvm::StringRef Directory,
Optional<DIFile::ChecksumInfo<StringRef>>
Checksum = None,
Optional<llvm::StringRef> Source = None)
Description
Create a file descriptor to hold debugging information for a file.
Declared at: llvm/include/llvm/IR/DIBuilder.h:157
Parameters
- llvm::StringRef Filename
- File name.
- llvm::StringRef Directory
- Directory.
- Optional<DIFile::ChecksumInfo<StringRef>> Checksum = None
- Optional checksum kind (e.g. CSK_MD5, CSK_SHA1, etc.) and value.
- Optional<llvm::StringRef> Source = None
- Optional source text.
¶llvm::DICompositeType* createForwardDecl(
unsigned int Tag,
llvm::StringRef Name,
llvm::DIScope* Scope,
llvm::DIFile* F,
unsigned int Line,
unsigned int RuntimeLang = 0,
uint64_t SizeInBits = 0,
uint32_t AlignInBits = 0,
llvm::StringRef UniqueIdentifier = "")
llvm::DICompositeType* createForwardDecl(
unsigned int Tag,
llvm::StringRef Name,
llvm::DIScope* Scope,
llvm::DIFile* F,
unsigned int Line,
unsigned int RuntimeLang = 0,
uint64_t SizeInBits = 0,
uint32_t AlignInBits = 0,
llvm::StringRef UniqueIdentifier = "")
Description
Create a permanent forward-declared type.
Declared at: llvm/include/llvm/IR/DIBuilder.h:534
Parameters
- unsigned int Tag
- llvm::StringRef Name
- llvm::DIScope* Scope
- llvm::DIFile* F
- unsigned int Line
- unsigned int RuntimeLang = 0
- uint64_t SizeInBits = 0
- uint32_t AlignInBits = 0
- llvm::StringRef UniqueIdentifier = ""
¶llvm::DIDerivedType* createFriend(
llvm::DIType* Ty,
llvm::DIType* FriendTy)
llvm::DIDerivedType* createFriend(
llvm::DIType* Ty,
llvm::DIType* FriendTy)
Description
Create debugging information entry for a 'friend'.
Declared at: llvm/include/llvm/IR/DIBuilder.h:246
Parameters
- llvm::DIType* Ty
- llvm::DIType* FriendTy
¶llvm::DISubprogram* createFunction(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::StringRef LinkageName,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DISubroutineType* Ty,
unsigned int ScopeLine,
DINode::DIFlags Flags = DINode::FlagZero,
DISubprogram::DISPFlags SPFlags =
DISubprogram::SPFlagZero,
llvm::DITemplateParameterArray TParams =
nullptr,
llvm::DISubprogram* Decl = nullptr,
llvm::DITypeArray ThrownTypes = nullptr)
llvm::DISubprogram* createFunction(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::StringRef LinkageName,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DISubroutineType* Ty,
unsigned int ScopeLine,
DINode::DIFlags Flags = DINode::FlagZero,
DISubprogram::DISPFlags SPFlags =
DISubprogram::SPFlagZero,
llvm::DITemplateParameterArray TParams =
nullptr,
llvm::DISubprogram* Decl = nullptr,
llvm::DITypeArray ThrownTypes = nullptr)
Description
Create a new descriptor for the specified subprogram. See comments in DISubprogram* for descriptions of these fields.
Declared at: llvm/include/llvm/IR/DIBuilder.h:664
Parameters
- llvm::DIScope* Scope
- Function scope.
- llvm::StringRef Name
- Function name.
- llvm::StringRef LinkageName
- Mangled function name.
- llvm::DIFile* File
- File where this variable is defined.
- unsigned int LineNo
- Line number.
- llvm::DISubroutineType* Ty
- Function type.
- unsigned int ScopeLine
- Set to the beginning of the scope this starts
- DINode::DIFlags Flags = DINode::FlagZero
- e.g. is this function prototyped or not. These flags are used to emit dwarf attributes.
- DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero
- Additional flags specific to subprograms.
- llvm::DITemplateParameterArray TParams = nullptr
- Function template parameters.
- llvm::DISubprogram* Decl = nullptr
- llvm::DITypeArray ThrownTypes = nullptr
- Exception types this function may throw.
¶llvm::DIGlobalVariableExpression*
createGlobalVariableExpression(
llvm::DIScope* Context,
llvm::StringRef Name,
llvm::StringRef LinkageName,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIType* Ty,
bool IsLocalToUnit,
bool isDefined = true,
llvm::DIExpression* Expr = nullptr,
llvm::MDNode* Decl = nullptr,
llvm::MDTuple* TemplateParams = nullptr,
uint32_t AlignInBits = 0)
llvm::DIGlobalVariableExpression*
createGlobalVariableExpression(
llvm::DIScope* Context,
llvm::StringRef Name,
llvm::StringRef LinkageName,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIType* Ty,
bool IsLocalToUnit,
bool isDefined = true,
llvm::DIExpression* Expr = nullptr,
llvm::MDNode* Decl = nullptr,
llvm::MDTuple* TemplateParams = nullptr,
uint32_t AlignInBits = 0)
Description
Create a new descriptor for the specified variable.
Declared at: llvm/include/llvm/IR/DIBuilder.h:584
Parameters
- llvm::DIScope* Context
- Variable scope.
- llvm::StringRef Name
- Name of the variable.
- llvm::StringRef LinkageName
- Mangled name of the variable.
- llvm::DIFile* File
- File where this variable is defined.
- unsigned int LineNo
- Line number.
- llvm::DIType* Ty
- Variable Type.
- bool IsLocalToUnit
- Boolean flag indicate whether this variable is externally visible or not.
- bool isDefined = true
- llvm::DIExpression* Expr = nullptr
- The location of the global relative to the attached GlobalVariable.
- llvm::MDNode* Decl = nullptr
- Reference to the corresponding declaration.
- llvm::MDTuple* TemplateParams = nullptr
- uint32_t AlignInBits = 0
- Variable alignment(or 0 if no alignment attr was specified)
¶llvm::DIImportedEntity* createImportedDeclaration(
llvm::DIScope* Context,
llvm::DINode* Decl,
llvm::DIFile* File,
unsigned int Line,
llvm::StringRef Name = "")
llvm::DIImportedEntity* createImportedDeclaration(
llvm::DIScope* Context,
llvm::DINode* Decl,
llvm::DIFile* File,
unsigned int Line,
llvm::StringRef Name = "")
Description
Create a descriptor for an imported function.
Declared at: llvm/include/llvm/IR/DIBuilder.h:792
Parameters
- llvm::DIScope* Context
- The scope this module is imported into.
- llvm::DINode* Decl
- The declaration (or definition) of a function, type, or variable.
- llvm::DIFile* File
- File where the declaration is located.
- unsigned int Line
- Line number of the declaration.
- llvm::StringRef Name = ""
¶llvm::DIImportedEntity* createImportedModule(
llvm::DIScope* Context,
llvm::DIModule* M,
llvm::DIFile* File,
unsigned int Line)
llvm::DIImportedEntity* createImportedModule(
llvm::DIScope* Context,
llvm::DIModule* M,
llvm::DIFile* File,
unsigned int Line)
Description
Create a descriptor for an imported module.
Declared at: llvm/include/llvm/IR/DIBuilder.h:783
Parameters
- llvm::DIScope* Context
- The scope this module is imported into.
- llvm::DIModule* M
- The module being imported here
- llvm::DIFile* File
- File where the declaration is located.
- unsigned int Line
- Line number of the declaration.
¶llvm::DIImportedEntity* createImportedModule(
llvm::DIScope* Context,
llvm::DINamespace* NS,
llvm::DIFile* File,
unsigned int Line)
llvm::DIImportedEntity* createImportedModule(
llvm::DIScope* Context,
llvm::DINamespace* NS,
llvm::DIFile* File,
unsigned int Line)
Description
Create a descriptor for an imported module.
Declared at: llvm/include/llvm/IR/DIBuilder.h:766
Parameters
- llvm::DIScope* Context
- The scope this module is imported into
- llvm::DINamespace* NS
- The namespace being imported here.
- llvm::DIFile* File
- File where the declaration is located.
- unsigned int Line
- Line number of the declaration.
¶llvm::DIImportedEntity* createImportedModule(
llvm::DIScope* Context,
llvm::DIImportedEntity* NS,
llvm::DIFile* File,
unsigned int Line)
llvm::DIImportedEntity* createImportedModule(
llvm::DIScope* Context,
llvm::DIImportedEntity* NS,
llvm::DIFile* File,
unsigned int Line)
Description
Create a descriptor for an imported module.
Declared at: llvm/include/llvm/IR/DIBuilder.h:774
Parameters
- llvm::DIScope* Context
- The scope this module is imported into.
- llvm::DIImportedEntity* NS
- An aliased namespace.
- llvm::DIFile* File
- File where the declaration is located.
- unsigned int Line
- Line number of the declaration.
¶llvm::DIDerivedType* createInheritance(
llvm::DIType* Ty,
llvm::DIType* BaseTy,
uint64_t BaseOffset,
uint32_t VBPtrOffset,
DINode::DIFlags Flags)
llvm::DIDerivedType* createInheritance(
llvm::DIType* Ty,
llvm::DIType* BaseTy,
uint64_t BaseOffset,
uint32_t VBPtrOffset,
DINode::DIFlags Flags)
Description
Create debugging information entry to establish inheritance relationship between two types.
Declared at: llvm/include/llvm/IR/DIBuilder.h:256
Parameters
- llvm::DIType* Ty
- Original type.
- llvm::DIType* BaseTy
- Base type. Ty is inherits from base.
- uint64_t BaseOffset
- Base offset.
- uint32_t VBPtrOffset
- Virtual base pointer offset.
- DINode::DIFlags Flags
- Flags to describe inheritance attribute, e.g. private
¶llvm::DILabel* createLabel(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
bool AlwaysPreserve = false)
llvm::DILabel* createLabel(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
bool AlwaysPreserve = false)
Description
Create a new descriptor for an label. \c Scope must be a \a DILocalScope, and thus its scope chain eventually leads to a \a DISubprogram.
Declared at: llvm/include/llvm/IR/DIBuilder.h:616
Parameters
- llvm::DIScope* Scope
- llvm::StringRef Name
- llvm::DIFile* File
- unsigned int LineNo
- bool AlwaysPreserve = false
¶llvm::DILexicalBlock* createLexicalBlock(
llvm::DIScope* Scope,
llvm::DIFile* File,
unsigned int Line,
unsigned int Col)
llvm::DILexicalBlock* createLexicalBlock(
llvm::DIScope* Scope,
llvm::DIFile* File,
unsigned int Line,
unsigned int Col)
Description
This creates a descriptor for a lexical block with the specified parent context.
Declared at: llvm/include/llvm/IR/DIBuilder.h:758
Parameters
- llvm::DIScope* Scope
- Parent lexical scope.
- llvm::DIFile* File
- Source file.
- unsigned int Line
- Line number.
- unsigned int Col
- Column number.
¶llvm::DILexicalBlockFile* createLexicalBlockFile(
llvm::DIScope* Scope,
llvm::DIFile* File,
unsigned int Discriminator = 0)
llvm::DILexicalBlockFile* createLexicalBlockFile(
llvm::DIScope* Scope,
llvm::DIFile* File,
unsigned int Discriminator = 0)
Description
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.
Declared at: llvm/include/llvm/IR/DIBuilder.h:749
Parameters
- llvm::DIScope* Scope
- Lexical block.
- llvm::DIFile* File
- Source file.
- unsigned int Discriminator = 0
- DWARF path discriminator value.
¶llvm::DIMacro* createMacro(
llvm::DIMacroFile* Parent,
unsigned int Line,
unsigned int MacroType,
llvm::StringRef Name,
llvm::StringRef Value = llvm::StringRef())
llvm::DIMacro* createMacro(
llvm::DIMacroFile* Parent,
unsigned int Line,
unsigned int MacroType,
llvm::StringRef Name,
llvm::StringRef Value = llvm::StringRef())
Description
Create debugging information entry for a macro.
Declared at: llvm/include/llvm/IR/DIBuilder.h:167
Parameters
- llvm::DIMacroFile* Parent
- Macro parent (could be nullptr).
- unsigned int Line
- Source line number where the macro is defined.
- unsigned int MacroType
- DW_MACINFO_define or DW_MACINFO_undef.
- llvm::StringRef Name
- Macro name.
- llvm::StringRef Value = llvm::StringRef()
- Macro value.
¶llvm::DIDerivedType* createMemberPointerType(
llvm::DIType* PointeeTy,
llvm::DIType* Class,
uint64_t SizeInBits,
uint32_t AlignInBits = 0,
DINode::DIFlags Flags = DINode::FlagZero)
llvm::DIDerivedType* createMemberPointerType(
llvm::DIType* PointeeTy,
llvm::DIType* Class,
uint64_t SizeInBits,
uint32_t AlignInBits = 0,
DINode::DIFlags Flags = DINode::FlagZero)
Description
Create debugging information entry for a pointer to member.
Declared at: llvm/include/llvm/IR/DIBuilder.h:222
Parameters
- llvm::DIType* PointeeTy
- Type pointed to by this pointer.
- llvm::DIType* Class
- Type for which this pointer points to members of.
- uint64_t SizeInBits
- Size.
- uint32_t AlignInBits = 0
- Alignment. (optional)
- DINode::DIFlags Flags = DINode::FlagZero
¶llvm::DIDerivedType* createMemberType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
DINode::DIFlags Flags,
llvm::DIType* Ty)
llvm::DIDerivedType* createMemberType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
DINode::DIFlags Flags,
llvm::DIType* Ty)
Description
Create debugging information entry for a member.
Declared at: llvm/include/llvm/IR/DIBuilder.h:270
Parameters
- llvm::DIScope* Scope
- Member scope.
- llvm::StringRef Name
- Member name.
- llvm::DIFile* File
- File where this member is defined.
- unsigned int LineNo
- Line number.
- uint64_t SizeInBits
- Member size.
- uint32_t AlignInBits
- Member alignment.
- uint64_t OffsetInBits
- Member offset.
- DINode::DIFlags Flags
- Flags to encode member attribute, e.g. private
- llvm::DIType* Ty
- Parent type.
¶llvm::DISubprogram* createMethod(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::StringRef LinkageName,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DISubroutineType* Ty,
unsigned int VTableIndex = 0,
int ThisAdjustment = 0,
llvm::DIType* VTableHolder = nullptr,
DINode::DIFlags Flags = DINode::FlagZero,
DISubprogram::DISPFlags SPFlags =
DISubprogram::SPFlagZero,
llvm::DITemplateParameterArray TParams =
nullptr,
llvm::DITypeArray ThrownTypes = nullptr)
llvm::DISubprogram* createMethod(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::StringRef LinkageName,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DISubroutineType* Ty,
unsigned int VTableIndex = 0,
int ThisAdjustment = 0,
llvm::DIType* VTableHolder = nullptr,
DINode::DIFlags Flags = DINode::FlagZero,
DISubprogram::DISPFlags SPFlags =
DISubprogram::SPFlagZero,
llvm::DITemplateParameterArray TParams =
nullptr,
llvm::DITypeArray ThrownTypes = nullptr)
Description
Create a new descriptor for the specified C++ method. See comments in \a DISubprogram* for descriptions of these fields.
Declared at: llvm/include/llvm/IR/DIBuilder.h:702
Parameters
- llvm::DIScope* Scope
- Function scope.
- llvm::StringRef Name
- Function name.
- llvm::StringRef LinkageName
- Mangled function name.
- llvm::DIFile* File
- File where this variable is defined.
- unsigned int LineNo
- Line number.
- llvm::DISubroutineType* Ty
- Function type.
- unsigned int VTableIndex = 0
- Index no of this method in virtual table, or -1u if unrepresentable.
- int ThisAdjustment = 0
- MS ABI-specific adjustment of 'this' that occurs in the prologue.
- llvm::DIType* VTableHolder = nullptr
- Type that holds vtable.
- DINode::DIFlags Flags = DINode::FlagZero
- e.g. is this function prototyped or not. This flags are used to emit dwarf attributes.
- DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero
- Additional flags specific to subprograms.
- llvm::DITemplateParameterArray TParams = nullptr
- Function template parameters.
- llvm::DITypeArray ThrownTypes = nullptr
- Exception types this function may throw.
¶llvm::DIModule* createModule(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::StringRef ConfigurationMacros,
llvm::StringRef IncludePath,
llvm::StringRef SysRoot)
llvm::DIModule* createModule(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::StringRef ConfigurationMacros,
llvm::StringRef IncludePath,
llvm::StringRef SysRoot)
Description
This creates new descriptor for a module with the specified parent scope.
Declared at: llvm/include/llvm/IR/DIBuilder.h:738
Parameters
- llvm::DIScope* Scope
- Parent scope
- llvm::StringRef Name
- Name of this module
- llvm::StringRef ConfigurationMacros
- A space-separated shell-quoted list of -D macro definitions as they would appear on a command line.
- llvm::StringRef IncludePath
- The path to the module map file.
- llvm::StringRef SysRoot
- The clang system root (value of -isysroot).
¶llvm::DINamespace* createNameSpace(
llvm::DIScope* Scope,
llvm::StringRef Name,
bool ExportSymbols)
llvm::DINamespace* createNameSpace(
llvm::DIScope* Scope,
llvm::StringRef Name,
bool ExportSymbols)
Description
This creates new descriptor for a namespace with the specified parent scope.
Declared at: llvm/include/llvm/IR/DIBuilder.h:726
Parameters
- llvm::DIScope* Scope
- Namespace scope
- llvm::StringRef Name
- Name of this namespace
- bool ExportSymbols
- True for C++ inline namespaces.
¶llvm::DIBasicType* createNullPtrType()
llvm::DIBasicType* createNullPtrType()
Description
Create C++11 nullptr type.
Declared at: llvm/include/llvm/IR/DIBuilder.h:186
¶llvm::DIDerivedType* createObjCIVar(
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
DINode::DIFlags Flags,
llvm::DIType* Ty,
llvm::MDNode* PropertyNode)
llvm::DIDerivedType* createObjCIVar(
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
DINode::DIFlags Flags,
llvm::DIType* Ty,
llvm::MDNode* PropertyNode)
Description
Create debugging information entry for Objective-C instance variable.
Declared at: llvm/include/llvm/IR/DIBuilder.h:340
Parameters
- llvm::StringRef Name
- Member name.
- llvm::DIFile* File
- File where this member is defined.
- unsigned int LineNo
- Line number.
- uint64_t SizeInBits
- Member size.
- uint32_t AlignInBits
- Member alignment.
- uint64_t OffsetInBits
- Member offset.
- DINode::DIFlags Flags
- Flags to encode member attribute, e.g. private
- llvm::DIType* Ty
- Parent type.
- llvm::MDNode* PropertyNode
- Property associated with this ivar.
¶llvm::DIObjCProperty* createObjCProperty(
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
llvm::StringRef GetterName,
llvm::StringRef SetterName,
unsigned int PropertyAttributes,
llvm::DIType* Ty)
llvm::DIObjCProperty* createObjCProperty(
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
llvm::StringRef GetterName,
llvm::StringRef SetterName,
unsigned int PropertyAttributes,
llvm::DIType* Ty)
Description
Create debugging information entry for Objective-C property.
Declared at: llvm/include/llvm/IR/DIBuilder.h:354
Parameters
- llvm::StringRef Name
- Property name.
- llvm::DIFile* File
- File where this property is defined.
- unsigned int LineNumber
- Line number.
- llvm::StringRef GetterName
- Name of the Objective C property getter selector.
- llvm::StringRef SetterName
- Name of the Objective C property setter selector.
- unsigned int PropertyAttributes
- Objective C property attributes.
- llvm::DIType* Ty
- Type.
¶static llvm::DIType* createObjectPointerType(
llvm::DIType* Ty)
static llvm::DIType* createObjectPointerType(
llvm::DIType* Ty)
Description
Create a uniqued clone of \p Ty with FlagObjectPointer and FlagArtificial set.
Declared at: llvm/include/llvm/IR/DIBuilder.h:531
Parameters
- llvm::DIType* Ty
¶llvm::DILocalVariable* createParameterVariable(
llvm::DIScope* Scope,
llvm::StringRef Name,
unsigned int ArgNo,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIType* Ty,
bool AlwaysPreserve = false,
DINode::DIFlags Flags = DINode::FlagZero)
llvm::DILocalVariable* createParameterVariable(
llvm::DIScope* Scope,
llvm::StringRef Name,
unsigned int ArgNo,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIType* Ty,
bool AlwaysPreserve = false,
DINode::DIFlags Flags = DINode::FlagZero)
Description
Create a new descriptor for a parameter variable. \c Scope must be a \a DILocalScope, and thus its scope chain eventually leads to a \a DISubprogram. \c ArgNo is the index (starting from \c 1) of this variable in the subprogram parameters. \c ArgNo should not conflict with other parameters of the same subprogram. If \c AlwaysPreserve, this variable will be referenced from its containing subprogram, and will survive some optimizations.
Declared at: llvm/include/llvm/IR/DIBuilder.h:631
Parameters
- llvm::DIScope* Scope
- llvm::StringRef Name
- unsigned int ArgNo
- llvm::DIFile* File
- unsigned int LineNo
- llvm::DIType* Ty
- bool AlwaysPreserve = false
- DINode::DIFlags Flags = DINode::FlagZero
¶llvm::DIDerivedType* createPointerType(
llvm::DIType* PointeeTy,
uint64_t SizeInBits,
uint32_t AlignInBits = 0,
Optional<unsigned int> DWARFAddressSpace =
None,
llvm::StringRef Name = "")
llvm::DIDerivedType* createPointerType(
llvm::DIType* PointeeTy,
uint64_t SizeInBits,
uint32_t AlignInBits = 0,
Optional<unsigned int> DWARFAddressSpace =
None,
llvm::StringRef Name = "")
Description
Create debugging information entry for a pointer.
Declared at: llvm/include/llvm/IR/DIBuilder.h:210
Parameters
- llvm::DIType* PointeeTy
- Type pointed by this pointer.
- uint64_t SizeInBits
- Size.
- uint32_t AlignInBits = 0
- Alignment. (optional)
- Optional<unsigned int> DWARFAddressSpace = None
- DWARF address space. (optional)
- llvm::StringRef Name = ""
- Pointer type name. (optional)
¶llvm::DIDerivedType* createQualifiedType(
unsigned int Tag,
llvm::DIType* FromTy)
llvm::DIDerivedType* createQualifiedType(
unsigned int Tag,
llvm::DIType* FromTy)
Description
Create debugging information entry for a qualified type, e.g. 'const int'.
Declared at: llvm/include/llvm/IR/DIBuilder.h:202
Parameters
- unsigned int Tag
- Tag identifing type, e.g. dwarf::TAG_volatile_type
- llvm::DIType* FromTy
- Base Type.
¶llvm::DIDerivedType* createReferenceType(
unsigned int Tag,
llvm::DIType* RTy,
uint64_t SizeInBits = 0,
uint32_t AlignInBits = 0,
Optional<unsigned int> DWARFAddressSpace =
None)
llvm::DIDerivedType* createReferenceType(
unsigned int Tag,
llvm::DIType* RTy,
uint64_t SizeInBits = 0,
uint32_t AlignInBits = 0,
Optional<unsigned int> DWARFAddressSpace =
None)
Description
Create debugging information entry for a c++ style reference or rvalue reference type.
Declared at: llvm/include/llvm/IR/DIBuilder.h:228
Parameters
- unsigned int Tag
- llvm::DIType* RTy
- uint64_t SizeInBits = 0
- uint32_t AlignInBits = 0
- Optional<unsigned int> DWARFAddressSpace = None
¶llvm::DICompositeType*
createReplaceableCompositeType(
unsigned int Tag,
llvm::StringRef Name,
llvm::DIScope* Scope,
llvm::DIFile* F,
unsigned int Line,
unsigned int RuntimeLang = 0,
uint64_t SizeInBits = 0,
uint32_t AlignInBits = 0,
DINode::DIFlags Flags = DINode::FlagFwdDecl,
llvm::StringRef UniqueIdentifier = "")
llvm::DICompositeType*
createReplaceableCompositeType(
unsigned int Tag,
llvm::StringRef Name,
llvm::DIScope* Scope,
llvm::DIFile* F,
unsigned int Line,
unsigned int RuntimeLang = 0,
uint64_t SizeInBits = 0,
uint32_t AlignInBits = 0,
DINode::DIFlags Flags = DINode::FlagFwdDecl,
llvm::StringRef UniqueIdentifier = "")
Description
Create a temporary forward-declared type.
Declared at: llvm/include/llvm/IR/DIBuilder.h:542
Parameters
- unsigned int Tag
- llvm::StringRef Name
- llvm::DIScope* Scope
- llvm::DIFile* F
- unsigned int Line
- unsigned int RuntimeLang = 0
- uint64_t SizeInBits = 0
- uint32_t AlignInBits = 0
- DINode::DIFlags Flags = DINode::FlagFwdDecl
- llvm::StringRef UniqueIdentifier = ""
¶llvm::DIDerivedType* createStaticMemberType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIType* Ty,
DINode::DIFlags Flags,
llvm::Constant* Val,
uint32_t AlignInBits = 0)
llvm::DIDerivedType* createStaticMemberType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIType* Ty,
DINode::DIFlags Flags,
llvm::Constant* Val,
uint32_t AlignInBits = 0)
Description
Create debugging information entry for a C++ static data member.
Declared at: llvm/include/llvm/IR/DIBuilder.h:323
Parameters
- llvm::DIScope* Scope
- Member scope.
- llvm::StringRef Name
- Member name.
- llvm::DIFile* File
- File where this member is declared.
- unsigned int LineNo
- Line number.
- llvm::DIType* Ty
- Type of the static member.
- DINode::DIFlags Flags
- Flags to encode member attribute, e.g. private.
- llvm::Constant* Val
- Const initializer of the member.
- uint32_t AlignInBits = 0
- Member alignment.
¶llvm::DICompositeType* createStructType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
uint64_t SizeInBits,
uint32_t AlignInBits,
DINode::DIFlags Flags,
llvm::DIType* DerivedFrom,
llvm::DINodeArray Elements,
unsigned int RunTimeLang = 0,
llvm::DIType* VTableHolder = nullptr,
llvm::StringRef UniqueIdentifier = "")
llvm::DICompositeType* createStructType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
uint64_t SizeInBits,
uint32_t AlignInBits,
DINode::DIFlags Flags,
llvm::DIType* DerivedFrom,
llvm::DINodeArray Elements,
unsigned int RunTimeLang = 0,
llvm::DIType* VTableHolder = nullptr,
llvm::StringRef UniqueIdentifier = "")
Description
Create debugging information entry for a struct.
Declared at: llvm/include/llvm/IR/DIBuilder.h:394
Parameters
- llvm::DIScope* Scope
- Scope in which this struct is defined.
- llvm::StringRef Name
- Struct name.
- llvm::DIFile* File
- File where this member is defined.
- unsigned int LineNumber
- Line number.
- uint64_t SizeInBits
- Member size.
- uint32_t AlignInBits
- Member alignment.
- DINode::DIFlags Flags
- Flags to encode member attribute, e.g. private
- llvm::DIType* DerivedFrom
- llvm::DINodeArray Elements
- Struct elements.
- unsigned int RunTimeLang = 0
- Optional parameter, Objective-C runtime version.
- llvm::DIType* VTableHolder = nullptr
- llvm::StringRef UniqueIdentifier = ""
- A unique identifier for the struct.
¶llvm::DISubroutineType* createSubroutineType(
llvm::DITypeRefArray ParameterTypes,
DINode::DIFlags Flags = DINode::FlagZero,
unsigned int CC = 0)
llvm::DISubroutineType* createSubroutineType(
llvm::DITypeRefArray ParameterTypes,
DINode::DIFlags Flags = DINode::FlagZero,
unsigned int CC = 0)
Description
Create subroutine type.
Declared at: llvm/include/llvm/IR/DIBuilder.h:519
Parameters
- llvm::DITypeRefArray ParameterTypes
- An array of subroutine parameter types. This includes return type at 0th index.
- DINode::DIFlags Flags = DINode::FlagZero
- E.g.: LValueReference. These flags are used to emit dwarf attributes.
- unsigned int CC = 0
- Calling convention, e.g. dwarf::DW_CC_normal
¶llvm::DISubprogram* createTempFunctionFwdDecl(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::StringRef LinkageName,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DISubroutineType* Ty,
unsigned int ScopeLine,
DINode::DIFlags Flags = DINode::FlagZero,
DISubprogram::DISPFlags SPFlags =
DISubprogram::SPFlagZero,
llvm::DITemplateParameterArray TParams =
nullptr,
llvm::DISubprogram* Decl = nullptr,
llvm::DITypeArray ThrownTypes = nullptr)
llvm::DISubprogram* createTempFunctionFwdDecl(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::StringRef LinkageName,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DISubroutineType* Ty,
unsigned int ScopeLine,
DINode::DIFlags Flags = DINode::FlagZero,
DISubprogram::DISPFlags SPFlags =
DISubprogram::SPFlagZero,
llvm::DITemplateParameterArray TParams =
nullptr,
llvm::DISubprogram* Decl = nullptr,
llvm::DITypeArray ThrownTypes = nullptr)
Description
Identical to createFunction, except that the resulting DbgNode is meant to be RAUWed.
Declared at: llvm/include/llvm/IR/DIBuilder.h:674
Parameters
- llvm::DIScope* Scope
- llvm::StringRef Name
- llvm::StringRef LinkageName
- llvm::DIFile* File
- unsigned int LineNo
- llvm::DISubroutineType* Ty
- unsigned int ScopeLine
- DINode::DIFlags Flags = DINode::FlagZero
- DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero
- llvm::DITemplateParameterArray TParams = nullptr
- llvm::DISubprogram* Decl = nullptr
- llvm::DITypeArray ThrownTypes = nullptr
¶llvm::DIGlobalVariable*
createTempGlobalVariableFwdDecl(
llvm::DIScope* Context,
llvm::StringRef Name,
llvm::StringRef LinkageName,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIType* Ty,
bool IsLocalToUnit,
llvm::MDNode* Decl = nullptr,
llvm::MDTuple* TemplateParams = nullptr,
uint32_t AlignInBits = 0)
llvm::DIGlobalVariable*
createTempGlobalVariableFwdDecl(
llvm::DIScope* Context,
llvm::StringRef Name,
llvm::StringRef LinkageName,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIType* Ty,
bool IsLocalToUnit,
llvm::MDNode* Decl = nullptr,
llvm::MDTuple* TemplateParams = nullptr,
uint32_t AlignInBits = 0)
Description
Identical to createGlobalVariable except that the resulting DbgNode is temporary and meant to be RAUWed.
Declared at: llvm/include/llvm/IR/DIBuilder.h:592
Parameters
- llvm::DIScope* Context
- llvm::StringRef Name
- llvm::StringRef LinkageName
- llvm::DIFile* File
- unsigned int LineNo
- llvm::DIType* Ty
- bool IsLocalToUnit
- llvm::MDNode* Decl = nullptr
- llvm::MDTuple* TemplateParams = nullptr
- uint32_t AlignInBits = 0
¶llvm::DIMacroFile* createTempMacroFile(
llvm::DIMacroFile* Parent,
unsigned int Line,
llvm::DIFile* File)
llvm::DIMacroFile* createTempMacroFile(
llvm::DIMacroFile* Parent,
unsigned int Line,
llvm::DIFile* File)
Description
Create debugging information temporary entry for a macro file. List of macro node direct children will be calculated by DIBuilder, using the \p Parent relationship.
Declared at: llvm/include/llvm/IR/DIBuilder.h:176
Parameters
- llvm::DIMacroFile* Parent
- Macro file parent (could be nullptr).
- unsigned int Line
- Source line number where the macro file is included.
- llvm::DIFile* File
- File descriptor containing the name of the macro file.
¶llvm::DITemplateValueParameter*
createTemplateParameterPack(llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIType* Ty,
llvm::DINodeArray Val)
llvm::DITemplateValueParameter*
createTemplateParameterPack(llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIType* Ty,
llvm::DINodeArray Val)
Description
Create debugging information for a template parameter pack.
Declared at: llvm/include/llvm/IR/DIBuilder.h:474
Parameters
- llvm::DIScope* Scope
- Scope in which this type is defined.
- llvm::StringRef Name
- Value parameter name.
- llvm::DIType* Ty
- Parameter type.
- llvm::DINodeArray Val
- An array of types in the pack.
¶llvm::DITemplateValueParameter*
createTemplateTemplateParameter(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIType* Ty,
llvm::StringRef Val)
llvm::DITemplateValueParameter*
createTemplateTemplateParameter(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIType* Ty,
llvm::StringRef Val)
Description
Create debugging information for a template template parameter.
Declared at: llvm/include/llvm/IR/DIBuilder.h:464
Parameters
- llvm::DIScope* Scope
- Scope in which this type is defined.
- llvm::StringRef Name
- Value parameter name.
- llvm::DIType* Ty
- Parameter type.
- llvm::StringRef Val
- The fully qualified name of the template.
¶llvm::DITemplateTypeParameter*
createTemplateTypeParameter(llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIType* Ty)
llvm::DITemplateTypeParameter*
createTemplateTypeParameter(llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIType* Ty)
Description
Create debugging information for template type parameter.
Declared at: llvm/include/llvm/IR/DIBuilder.h:446
Parameters
- llvm::DIScope* Scope
- Scope in which this type is defined.
- llvm::StringRef Name
- Type parameter name.
- llvm::DIType* Ty
- Parameter type.
¶llvm::DITemplateValueParameter*
createTemplateValueParameter(llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIType* Ty,
llvm::Constant* Val)
llvm::DITemplateValueParameter*
createTemplateValueParameter(llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIType* Ty,
llvm::Constant* Val)
Description
Create debugging information for template value parameter.
Declared at: llvm/include/llvm/IR/DIBuilder.h:454
Parameters
- llvm::DIScope* Scope
- Scope in which this type is defined.
- llvm::StringRef Name
- Value parameter name.
- llvm::DIType* Ty
- Parameter type.
- llvm::Constant* Val
- Constant parameter value.
¶llvm::DIDerivedType* createTypedef(
llvm::DIType* Ty,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIScope* Context,
uint32_t AlignInBits = 0)
llvm::DIDerivedType* createTypedef(
llvm::DIType* Ty,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
llvm::DIScope* Context,
uint32_t AlignInBits = 0)
Description
Create debugging information entry for a typedef.
Declared at: llvm/include/llvm/IR/DIBuilder.h:241
Parameters
- llvm::DIType* Ty
- Original type.
- llvm::StringRef Name
- Typedef name.
- llvm::DIFile* File
- File where this type is defined.
- unsigned int LineNo
- Line number.
- llvm::DIScope* Context
- The surrounding context for the typedef.
- uint32_t AlignInBits = 0
- Alignment. (optional)
¶llvm::DICompositeType* createUnionType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
uint64_t SizeInBits,
uint32_t AlignInBits,
DINode::DIFlags Flags,
llvm::DINodeArray Elements,
unsigned int RunTimeLang = 0,
llvm::StringRef UniqueIdentifier = "")
llvm::DICompositeType* createUnionType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
uint64_t SizeInBits,
uint32_t AlignInBits,
DINode::DIFlags Flags,
llvm::DINodeArray Elements,
unsigned int RunTimeLang = 0,
llvm::StringRef UniqueIdentifier = "")
Description
Create debugging information entry for an union.
Declared at: llvm/include/llvm/IR/DIBuilder.h:411
Parameters
- llvm::DIScope* Scope
- Scope in which this union is defined.
- llvm::StringRef Name
- Union name.
- llvm::DIFile* File
- File where this member is defined.
- unsigned int LineNumber
- Line number.
- uint64_t SizeInBits
- Member size.
- uint32_t AlignInBits
- Member alignment.
- DINode::DIFlags Flags
- Flags to encode member attribute, e.g. private
- llvm::DINodeArray Elements
- Union elements.
- unsigned int RunTimeLang = 0
- Optional parameter, Objective-C runtime version.
- llvm::StringRef UniqueIdentifier = ""
- A unique identifier for the union.
¶llvm::DIBasicType* createUnspecifiedParameter()
llvm::DIBasicType* createUnspecifiedParameter()
Description
Create unspecified parameter type for a subroutine type.
Declared at: llvm/include/llvm/IR/DIBuilder.h:554
¶llvm::DIBasicType* createUnspecifiedType(
llvm::StringRef Name)
llvm::DIBasicType* createUnspecifiedType(
llvm::StringRef Name)
Description
Create a DWARF unspecified type.
Declared at: llvm/include/llvm/IR/DIBuilder.h:183
Parameters
- llvm::StringRef Name
¶llvm::DIDerivedType* createVariantMemberType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
llvm::Constant* Discriminant,
DINode::DIFlags Flags,
llvm::DIType* Ty)
llvm::DIDerivedType* createVariantMemberType(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNo,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
llvm::Constant* Discriminant,
DINode::DIFlags Flags,
llvm::DIType* Ty)
Description
Create debugging information entry for a variant. A variant normally should be a member of a variant part.
Declared at: llvm/include/llvm/IR/DIBuilder.h:290
Parameters
- llvm::DIScope* Scope
- Member scope.
- llvm::StringRef Name
- Member name.
- llvm::DIFile* File
- File where this member is defined.
- unsigned int LineNo
- Line number.
- uint64_t SizeInBits
- Member size.
- uint32_t AlignInBits
- Member alignment.
- uint64_t OffsetInBits
- Member offset.
- llvm::Constant* Discriminant
- The discriminant for this branch; null for the default branch
- DINode::DIFlags Flags
- Flags to encode member attribute, e.g. private
- llvm::DIType* Ty
- Parent type.
¶llvm::DICompositeType* createVariantPart(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
uint64_t SizeInBits,
uint32_t AlignInBits,
DINode::DIFlags Flags,
llvm::DIDerivedType* Discriminator,
llvm::DINodeArray Elements,
llvm::StringRef UniqueIdentifier = "")
llvm::DICompositeType* createVariantPart(
llvm::DIScope* Scope,
llvm::StringRef Name,
llvm::DIFile* File,
unsigned int LineNumber,
uint64_t SizeInBits,
uint32_t AlignInBits,
DINode::DIFlags Flags,
llvm::DIDerivedType* Discriminator,
llvm::DINodeArray Elements,
llvm::StringRef UniqueIdentifier = "")
Description
Create debugging information entry for a variant part. A variant part normally has a discriminator (though this is not required) and a number of variant children.
Declared at: llvm/include/llvm/IR/DIBuilder.h:432
Parameters
- llvm::DIScope* Scope
- Scope in which this union is defined.
- llvm::StringRef Name
- Union name.
- llvm::DIFile* File
- File where this member is defined.
- unsigned int LineNumber
- Line number.
- uint64_t SizeInBits
- Member size.
- uint32_t AlignInBits
- Member alignment.
- DINode::DIFlags Flags
- Flags to encode member attribute, e.g. private
- llvm::DIDerivedType* Discriminator
- Discriminant member
- llvm::DINodeArray Elements
- Variant elements.
- llvm::StringRef UniqueIdentifier = ""
- A unique identifier for the union.
¶llvm::DICompositeType* createVectorType(
uint64_t Size,
uint32_t AlignInBits,
llvm::DIType* Ty,
llvm::DINodeArray Subscripts)
llvm::DICompositeType* createVectorType(
uint64_t Size,
uint32_t AlignInBits,
llvm::DIType* Ty,
llvm::DINodeArray Subscripts)
Description
Create debugging information entry for a vector type.
Declared at: llvm/include/llvm/IR/DIBuilder.h:492
Parameters
- uint64_t Size
- Array size.
- uint32_t AlignInBits
- Alignment.
- llvm::DIType* Ty
- Element type.
- llvm::DINodeArray Subscripts
- Subscripts.
¶void finalize()
void finalize()
Description
Construct any deferred debug info descriptors.
Declared at: llvm/include/llvm/IR/DIBuilder.h:108
¶void finalizeSubprogram(llvm::DISubprogram* SP)
void finalizeSubprogram(llvm::DISubprogram* SP)
Description
Finalize a specific subprogram - no new variables may be added to this subprogram afterwards.
Declared at: llvm/include/llvm/IR/DIBuilder.h:112
Parameters
¶llvm::DINodeArray getOrCreateArray(
ArrayRef<llvm::Metadata*> Elements)
llvm::DINodeArray getOrCreateArray(
ArrayRef<llvm::Metadata*> Elements)
Description
Get a DINodeArray, create one if required.
Declared at: llvm/include/llvm/IR/DIBuilder.h:557
Parameters
- ArrayRef<llvm::Metadata*> Elements
¶llvm::DIMacroNodeArray getOrCreateMacroArray(
ArrayRef<llvm::Metadata*> Elements)
llvm::DIMacroNodeArray getOrCreateMacroArray(
ArrayRef<llvm::Metadata*> Elements)
Description
Get a DIMacroNodeArray, create one if required.
Declared at: llvm/include/llvm/IR/DIBuilder.h:560
Parameters
- ArrayRef<llvm::Metadata*> Elements
¶llvm::DISubrange* getOrCreateSubrange(
int64_t Lo,
int64_t Count)
llvm::DISubrange* getOrCreateSubrange(
int64_t Lo,
int64_t Count)
Description
Create a descriptor for a value range. This implicitly uniques the values returned.
Declared at: llvm/include/llvm/IR/DIBuilder.h:567
Parameters
- int64_t Lo
- int64_t Count
¶llvm::DISubrange* getOrCreateSubrange(
int64_t Lo,
llvm::Metadata* CountNode)
llvm::DISubrange* getOrCreateSubrange(
int64_t Lo,
llvm::Metadata* CountNode)
Declared at: llvm/include/llvm/IR/DIBuilder.h:568
Parameters
- int64_t Lo
- llvm::Metadata* CountNode
¶llvm::DITypeRefArray getOrCreateTypeArray(
ArrayRef<llvm::Metadata*> Elements)
llvm::DITypeRefArray getOrCreateTypeArray(
ArrayRef<llvm::Metadata*> Elements)
Description
Get a DITypeRefArray, create one if required.
Declared at: llvm/include/llvm/IR/DIBuilder.h:563
Parameters
- ArrayRef<llvm::Metadata*> Elements
¶llvm::Instruction* insertDbgValueIntrinsic(
llvm::Value* Val,
llvm::DILocalVariable* VarInfo,
llvm::DIExpression* Expr,
const llvm::DILocation* DL,
llvm::Instruction* InsertBefore)
llvm::Instruction* insertDbgValueIntrinsic(
llvm::Value* Val,
llvm::DILocalVariable* VarInfo,
llvm::DIExpression* Expr,
const llvm::DILocation* DL,
llvm::Instruction* InsertBefore)
Description
Insert a new llvm.dbg.value intrinsic call.
Declared at: llvm/include/llvm/IR/DIBuilder.h:848
Parameters
- llvm::Value* Val
- llvm::Value of the variable
- llvm::DILocalVariable* VarInfo
- Variable's debug info descriptor.
- llvm::DIExpression* Expr
- A complex location expression.
- const llvm::DILocation* DL
- Debug info location.
- llvm::Instruction* InsertBefore
- Location for the new intrinsic.
¶llvm::Instruction* insertDbgValueIntrinsic(
llvm::Value* Val,
llvm::DILocalVariable* VarInfo,
llvm::DIExpression* Expr,
const llvm::DILocation* DL,
llvm::BasicBlock* InsertAtEnd)
llvm::Instruction* insertDbgValueIntrinsic(
llvm::Value* Val,
llvm::DILocalVariable* VarInfo,
llvm::DIExpression* Expr,
const llvm::DILocation* DL,
llvm::BasicBlock* InsertAtEnd)
Description
Insert a new llvm.dbg.value intrinsic call.
Declared at: llvm/include/llvm/IR/DIBuilder.h:836
Parameters
- llvm::Value* Val
- llvm::Value of the variable
- llvm::DILocalVariable* VarInfo
- Variable's debug info descriptor.
- llvm::DIExpression* Expr
- A complex location expression.
- const llvm::DILocation* DL
- Debug info location.
- llvm::BasicBlock* InsertAtEnd
- Location for the new intrinsic.
¶llvm::Instruction* insertDeclare(
llvm::Value* Storage,
llvm::DILocalVariable* VarInfo,
llvm::DIExpression* Expr,
const llvm::DILocation* DL,
llvm::BasicBlock* InsertAtEnd)
llvm::Instruction* insertDeclare(
llvm::Value* Storage,
llvm::DILocalVariable* VarInfo,
llvm::DIExpression* Expr,
const llvm::DILocation* DL,
llvm::BasicBlock* InsertAtEnd)
Description
Insert a new llvm.dbg.declare intrinsic call.
Declared at: llvm/include/llvm/IR/DIBuilder.h:802
Parameters
- llvm::Value* Storage
- llvm::Value of the variable
- llvm::DILocalVariable* VarInfo
- Variable's debug info descriptor.
- llvm::DIExpression* Expr
- A complex location expression.
- const llvm::DILocation* DL
- Debug info location.
- llvm::BasicBlock* InsertAtEnd
- Location for the new intrinsic.
¶llvm::Instruction* insertDeclare(
llvm::Value* Storage,
llvm::DILocalVariable* VarInfo,
llvm::DIExpression* Expr,
const llvm::DILocation* DL,
llvm::Instruction* InsertBefore)
llvm::Instruction* insertDeclare(
llvm::Value* Storage,
llvm::DILocalVariable* VarInfo,
llvm::DIExpression* Expr,
const llvm::DILocation* DL,
llvm::Instruction* InsertBefore)
Description
Insert a new llvm.dbg.declare intrinsic call.
Declared at: llvm/include/llvm/IR/DIBuilder.h:812
Parameters
- llvm::Value* Storage
- llvm::Value of the variable
- llvm::DILocalVariable* VarInfo
- Variable's debug info descriptor.
- llvm::DIExpression* Expr
- A complex location expression.
- const llvm::DILocation* DL
- Debug info location.
- llvm::Instruction* InsertBefore
- Location for the new intrinsic.
¶llvm::Instruction* insertLabel(
llvm::DILabel* LabelInfo,
const llvm::DILocation* DL,
llvm::Instruction* InsertBefore)
llvm::Instruction* insertLabel(
llvm::DILabel* LabelInfo,
const llvm::DILocation* DL,
llvm::Instruction* InsertBefore)
Description
Insert a new llvm.dbg.label intrinsic call.
Declared at: llvm/include/llvm/IR/DIBuilder.h:820
Parameters
- llvm::DILabel* LabelInfo
- Label's debug info descriptor.
- const llvm::DILocation* DL
- Debug info location.
- llvm::Instruction* InsertBefore
- Location for the new intrinsic.
¶llvm::Instruction* insertLabel(
llvm::DILabel* LabelInfo,
const llvm::DILocation* DL,
llvm::BasicBlock* InsertAtEnd)
llvm::Instruction* insertLabel(
llvm::DILabel* LabelInfo,
const llvm::DILocation* DL,
llvm::BasicBlock* InsertAtEnd)
Description
Insert a new llvm.dbg.label intrinsic call.
Declared at: llvm/include/llvm/IR/DIBuilder.h:827
Parameters
- llvm::DILabel* LabelInfo
- Label's debug info descriptor.
- const llvm::DILocation* DL
- Debug info location.
- llvm::BasicBlock* InsertAtEnd
- Location for the new intrinsic.
¶void replaceArrays(
llvm::DICompositeType*& T,
llvm::DINodeArray Elements,
llvm::DINodeArray TParams = llvm::
MDTupleTypedArrayWrapper<llvm::DINode>())
void replaceArrays(
llvm::DICompositeType*& T,
llvm::DINodeArray Elements,
llvm::DINodeArray TParams = llvm::
MDTupleTypedArrayWrapper<llvm::DINode>())
Description
Replace arrays on a composite type. If \c T is resolved, but the arrays aren't -- which can happen if \c T has a self-reference -- \a DIBuilder needs to track the array to resolve cycles.
Declared at: llvm/include/llvm/IR/DIBuilder.h:866
Parameters
- llvm::DICompositeType*& T
- llvm::DINodeArray Elements
- llvm::DINodeArray TParams = llvm::MDTupleTypedArrayWrapper<llvm::DINode>()
¶template <class NodeTy>
NodeTy* replaceTemporary(llvm::TempMDNode&& N,
NodeTy* Replacement)
template <class NodeTy>
NodeTy* replaceTemporary(llvm::TempMDNode&& N,
NodeTy* Replacement)
Description
Replace a temporary node. Call \a MDNode::replaceAllUsesWith() on \c N, replacing it with \c Replacement. If \c Replacement is the same as \c N.get(), instead call \a MDNode::replaceWithUniqued(). In this case, the uniqued node could have a different address, so we return the final address.
Declared at: llvm/include/llvm/IR/DIBuilder.h:878
Templates
- NodeTy
Parameters
- llvm::TempMDNode&& N
- NodeTy* Replacement
¶void replaceVTableHolder(
llvm::DICompositeType*& T,
llvm::DIType* VTableHolder)
void replaceVTableHolder(
llvm::DICompositeType*& T,
llvm::DIType* VTableHolder)
Description
Replace the vtable holder in the given type. If this creates a self reference, it may orphan some unresolved cycles in the operands of \c T, so \a DIBuilder needs to track that.
Declared at: llvm/include/llvm/IR/DIBuilder.h:858
Parameters
- llvm::DICompositeType*& T
- llvm::DIType* VTableHolder
¶void retainType(llvm::DIScope* T)
void retainType(llvm::DIScope* T)
Description
Retain DIScope* in a module even if it is not referenced through debug info anchors.
Declared at: llvm/include/llvm/IR/DIBuilder.h:550