15 #ifndef LLVM_DIBUILDER_H
16 #define LLVM_DIBUILDER_H
21 #include "llvm/Support/DataTypes.h"
35 class DICompositeType;
42 class DIGlobalVariable;
43 class DIImportedEntity;
47 class DILexicalBlockFile;
51 class DITemplateTypeParameter;
52 class DITemplateValueParameter;
64 MDNode *TempImportedModules;
78 createTemplateValueParameter(
unsigned Tag,
DIDescriptor Scope,
81 unsigned ColumnNo = 0);
135 uint64_t AlignInBits,
unsigned Encoding);
181 uint64_t BaseOffset,
unsigned Flags);
195 unsigned LineNo, uint64_t SizeInBits, uint64_t AlignInBits,
196 uint64_t OffsetInBits,
unsigned Flags,
DIType Ty);
230 unsigned LineNo, uint64_t SizeInBits,
231 uint64_t AlignInBits, uint64_t OffsetInBits,
232 unsigned Flags,
DIType Ty,
236 unsigned PropertyAttributes = 0);
250 unsigned LineNo, uint64_t SizeInBits,
251 uint64_t AlignInBits, uint64_t OffsetInBits,
252 unsigned Flags,
DIType Ty,
265 DIFile File,
unsigned LineNumber,
268 unsigned PropertyAttributes,
288 DIFile File,
unsigned LineNumber,
289 uint64_t SizeInBits, uint64_t AlignInBits,
290 uint64_t OffsetInBits,
unsigned Flags,
293 MDNode *TemplateParms = 0,
308 DIFile File,
unsigned LineNumber,
309 uint64_t SizeInBits, uint64_t AlignInBits,
310 unsigned Flags,
DIType DerivedFrom,
311 DIArray Elements,
unsigned RunTimeLang = 0,
328 uint64_t SizeInBits, uint64_t AlignInBits,
unsigned Flags,
329 DIArray Elements,
unsigned RunTimeLang = 0,
342 MDNode *File = 0,
unsigned LineNo = 0,
343 unsigned ColumnNo = 0);
357 unsigned LineNo = 0,
unsigned ColumnNo = 0);
370 unsigned LineNo = 0,
unsigned ColumnNo = 0);
383 unsigned LineNo = 0,
unsigned ColumnNo = 0);
413 DIFile File,
unsigned LineNumber, uint64_t SizeInBits,
414 uint64_t AlignInBits,
DIArray Elements,
DIType UnderlyingType,
433 unsigned Line,
unsigned RuntimeLang = 0,
434 uint64_t SizeInBits = 0,
435 uint64_t AlignInBits = 0,
476 unsigned LineNo,
DIType Ty,
bool isLocalToUnit,
514 DIFile File,
unsigned LineNo,
515 DIType Ty,
bool AlwaysPreserve =
false,
555 DIFile File,
unsigned LineNo,
560 bool isOptimized =
false,
569 DIFile File,
unsigned LineNo,
574 bool isOptimized =
false,
600 DIFile File,
unsigned LineNo,
603 unsigned Virtuality = 0,
unsigned VTableIndex = 0,
606 bool isOptimized =
false,
617 DIFile File,
unsigned LineNo);
635 unsigned Line,
unsigned Col);
void finalize()
finalize - Construct any deferred debug info descriptors.
DICompileUnit createCompileUnit(unsigned Lang, StringRef File, StringRef Dir, StringRef Producer, bool isOptimized, StringRef Flags, unsigned RV, StringRef SplitName=StringRef())
DITemplateTypeParameter - This is a wrapper for template type parameter.
DILexicalBlock createLexicalBlock(DIDescriptor Scope, DIFile File, unsigned Line, unsigned Col)
DICompositeType createForwardDecl(unsigned Tag, StringRef Name, DIDescriptor Scope, DIFile F, unsigned Line, unsigned RuntimeLang=0, uint64_t SizeInBits=0, uint64_t AlignInBits=0, StringRef UniqueIdentifier=StringRef())
createForwardDecl - Create a temporary forward-declared type.
DIObjCProperty createObjCProperty(StringRef Name, DIFile File, unsigned LineNumber, StringRef GetterName, StringRef SetterName, unsigned PropertyAttributes, DIType Ty)
DITemplateValueParameter createTemplateParameterPack(DIDescriptor Scope, StringRef Name, DIType Ty, DIArray Val, MDNode *File=0, unsigned LineNo=0, unsigned ColumnNo=0)
Create debugging information for a template parameter pack.
DIGlobalVariable createGlobalVariable(StringRef Name, DIFile File, unsigned LineNo, DIType Ty, bool isLocalToUnit, llvm::Value *Val)
Create a new descriptor for the specified global.
The main container class for the LLVM Intermediate Representation.
DICompositeType createClassType(DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, uint64_t OffsetInBits, unsigned Flags, DIType DerivedFrom, DIArray Elements, DIType VTableHolder=DIType(), MDNode *TemplateParms=0, StringRef UniqueIdentifier=StringRef())
createClassType - Create debugging information entry for a class.
DIVariable createComplexVariable(unsigned Tag, DIDescriptor Scope, StringRef Name, DIFile F, unsigned LineNo, DIType Ty, ArrayRef< Value * > Addr, unsigned ArgNo=0)
DINameSpace createNameSpace(DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNo)
void retainType(DIType T)
DIFile createFile(StringRef Filename, StringRef Directory)
MDNode - a tuple of other values.
DIBasicType createNullPtrType()
Create C++11 nullptr type.
DICompositeType createVectorType(uint64_t Size, uint64_t AlignInBits, DIType Ty, DIArray Subscripts)
createVectorType - Create debugging information entry for a vector.
DIArray - This descriptor holds an array of descriptors.
DIVariable createLocalVariable(unsigned Tag, DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNo, DIType Ty, bool AlwaysPreserve=false, unsigned Flags=0, unsigned ArgNo=0)
createVariable - Create a new descriptor for the specified variable.
DILexicalBlockFile createLexicalBlockFile(DIDescriptor Scope, DIFile File)
DISubprogram createMethod(DIDescriptor Scope, StringRef Name, StringRef LinkageName, DIFile File, unsigned LineNo, DICompositeType Ty, bool isLocalToUnit, bool isDefinition, unsigned Virtuality=0, unsigned VTableIndex=0, DIType VTableHolder=DIType(), unsigned Flags=0, bool isOptimized=false, Function *Fn=0, MDNode *TParam=0)
createMethod - Create a new descriptor for the specified C++ method.
DISubrange - This is used to represent ranges, for array bounds.
DISubprogram - This is a wrapper for a subprogram (e.g. a function).
DICompositeType createEnumerationType(DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, DIArray Elements, DIType UnderlyingType, StringRef UniqueIdentifier=StringRef())
DIDescriptor createUnspecifiedParameter()
DIImportedEntity createImportedDeclaration(DIScope Context, DIDescriptor Decl, unsigned Line)
Create a descriptor for an imported function.
DIFile - This is a wrapper for a file.
DIDerivedType createFriend(DIType Ty, DIType FriendTy)
createFriend - Create debugging information entry for a 'friend'.
DICompositeType createArrayType(uint64_t Size, uint64_t AlignInBits, DIType Ty, DIArray Subscripts)
createArrayType - Create debugging information entry for an array.
DILexicalBlock - This is a wrapper for a lexical block.
DITemplateValueParameter - This is a wrapper for template value parameter.
LLVM Basic Block Representation.
DIDerivedType createPointerType(DIType PointeeTy, uint64_t SizeInBits, uint64_t AlignInBits=0, StringRef Name=StringRef())
createPointerType - Create debugging information entry for a pointer.
DIArray getOrCreateArray(ArrayRef< Value * > Elements)
getOrCreateArray - Get a DIArray, create one if required.
Instruction * insertDbgValueIntrinsic(llvm::Value *Val, uint64_t Offset, DIVariable VarInfo, BasicBlock *InsertAtEnd)
insertDbgValueIntrinsic - Insert a new llvm.dbg.value intrinsic call.
DIType createObjectPointerType(DIType Ty)
DIGlobalVariable - This is a wrapper for a global variable.
DIDerivedType createReferenceType(unsigned Tag, DIType RTy)
DIDerivedType createStaticMemberType(DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNo, DIType Ty, unsigned Flags, llvm::Value *Val)
Instruction * insertDeclare(llvm::Value *Storage, DIVariable VarInfo, BasicBlock *InsertAtEnd)
insertDeclare - Insert a new llvm.dbg.declare intrinsic call.
DISubrange getOrCreateSubrange(int64_t Lo, int64_t Count)
An imported module (C++ using directive or similar).
DIScope - A base class for various scopes.
DIDerivedType createMemberType(DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNo, uint64_t SizeInBits, uint64_t AlignInBits, uint64_t OffsetInBits, unsigned Flags, DIType Ty)
createMemberType - Create debugging information entry for a member.
DIBasicType createUnspecifiedType(StringRef Name)
Create a DWARF unspecified type.
DINameSpace - A wrapper for a C++ style name space.
DICompositeType createUnionType(DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, unsigned Flags, DIArray Elements, unsigned RunTimeLang=0, StringRef UniqueIdentifier=StringRef())
createUnionType - Create debugging information entry for an union.
DIImportedEntity createImportedModule(DIScope Context, DINameSpace NS, unsigned Line, StringRef Name=StringRef())
Create a descriptor for an imported module.
#define LLVM_DELETED_FUNCTION
DITemplateValueParameter createTemplateTemplateParameter(DIDescriptor Scope, StringRef Name, DIType Ty, StringRef Val, MDNode *File=0, unsigned LineNo=0, unsigned ColumnNo=0)
Create debugging information for a template template parameter.
DIDerivedType createMemberPointerType(DIType PointeeTy, DIType Class)
Create debugging information entry for a pointer to member.
DIDerivedType createQualifiedType(unsigned Tag, DIType FromTy)
DIDerivedType createTypedef(DIType Ty, StringRef Name, DIFile File, unsigned LineNo, DIDescriptor Context)
createTypedef - Create debugging information entry for a typedef.
DITemplateTypeParameter createTemplateTypeParameter(DIDescriptor Scope, StringRef Name, DIType Ty, MDNode *File=0, unsigned LineNo=0, unsigned ColumnNo=0)
LLVM Value Representation.
DIGlobalVariable createStaticVariable(DIDescriptor Context, StringRef Name, StringRef LinkageName, DIFile File, unsigned LineNo, DIType Ty, bool isLocalToUnit, llvm::Value *Val, MDNode *Decl=NULL)
DISubprogram createFunction(DIDescriptor Scope, StringRef Name, StringRef LinkageName, DIFile File, unsigned LineNo, DICompositeType Ty, bool isLocalToUnit, bool isDefinition, unsigned ScopeLine, unsigned Flags=0, bool isOptimized=false, Function *Fn=0, MDNode *TParam=0, MDNode *Decl=0)
createFunction - Create a new descriptor for the specified function.
DIDerivedType createObjCIVar(StringRef Name, DIFile File, unsigned LineNo, uint64_t SizeInBits, uint64_t AlignInBits, uint64_t OffsetInBits, unsigned Flags, DIType Ty, StringRef PropertyName=StringRef(), StringRef PropertyGetterName=StringRef(), StringRef PropertySetterName=StringRef(), unsigned PropertyAttributes=0)
DIBasicType createBasicType(StringRef Name, uint64_t SizeInBits, uint64_t AlignInBits, unsigned Encoding)
DIDerivedType createInheritance(DIType Ty, DIType BaseTy, uint64_t BaseOffset, unsigned Flags)
DIEnumerator createEnumerator(StringRef Name, int64_t Val)
createEnumerator - Create a single enumerator value.
DICompositeType createSubroutineType(DIFile File, DIArray ParameterTypes)
createSubroutineType - Create subroutine type.
DICompileUnit - A wrapper for a compile unit.
DICompositeType createStructType(DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNumber, uint64_t SizeInBits, uint64_t AlignInBits, unsigned Flags, DIType DerivedFrom, DIArray Elements, unsigned RunTimeLang=0, DIType VTableHolder=DIType(), StringRef UniqueIdentifier=StringRef())
createStructType - Create debugging information entry for a struct.
DIType createArtificialType(DIType Ty)
createArtificialType - Create a new DIType with "artificial" flag set.
DIBasicType - A basic type, like 'int' or 'float'.