LLVM  7.0.0svn
Macros | Functions
DebugInfo.cpp File Reference
#include "llvm-c/DebugInfo.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/DebugInfo.h"
#include "llvm/IR/DIBuilder.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GVMaterializer.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/Casting.h"
#include <algorithm>
#include <cassert>
#include <utility>
#include "llvm/BinaryFormat/Dwarf.def"
Include dependency graph for DebugInfo.cpp:

Go to the source code of this file.

Macros

#define HANDLE_DW_LANG(ID, NAME, VERSION, VENDOR)   case LLVMDWARFSourceLanguage##NAME: return ID;
 

Functions

static MDNodestripDebugLocFromLoopID (MDNode *N)
 
static unsigned map_from_llvmDWARFsourcelanguage (LLVMDWARFSourceLanguage lang)
 
template<typename DIT >
DIT * unwrapDI (LLVMMetadataRef Ref)
 
static DINode::DIFlags map_from_llvmDIFlags (LLVMDIFlags Flags)
 
static LLVMDIFlags map_to_llvmDIFlags (DINode::DIFlags Flags)
 
unsigned LLVMDebugMetadataVersion ()
 The current debug metadata version number. More...
 
LLVMDIBuilderRef LLVMCreateDIBuilderDisallowUnresolved (LLVMModuleRef M)
 Construct a builder for a module, and do not allow for unresolved nodes attached to the module. More...
 
LLVMDIBuilderRef LLVMCreateDIBuilder (LLVMModuleRef M)
 Construct a builder for a module and collect unresolved nodes attached to the module in order to resolve cycles during a call to LLVMDIBuilderFinalize. More...
 
unsigned LLVMGetModuleDebugMetadataVersion (LLVMModuleRef M)
 The version of debug metadata that's present in the provided Module. More...
 
LLVMBool LLVMStripModuleDebugInfo (LLVMModuleRef M)
 Strip debug info in the module if it exists. More...
 
void LLVMDisposeDIBuilder (LLVMDIBuilderRef Builder)
 Deallocates the DIBuilder and everything it owns. More...
 
void LLVMDIBuilderFinalize (LLVMDIBuilderRef Builder)
 Construct any deferred debug info descriptors. More...
 
LLVMMetadataRef LLVMDIBuilderCreateCompileUnit (LLVMDIBuilderRef Builder, LLVMDWARFSourceLanguage Lang, LLVMMetadataRef FileRef, const char *Producer, size_t ProducerLen, LLVMBool isOptimized, const char *Flags, size_t FlagsLen, unsigned RuntimeVer, const char *SplitName, size_t SplitNameLen, LLVMDWARFEmissionKind Kind, unsigned DWOId, LLVMBool SplitDebugInlining, LLVMBool DebugInfoForProfiling)
 A CompileUnit provides an anchor for all debugging information generated during this instance of compilation. More...
 
LLVMMetadataRef LLVMDIBuilderCreateFile (LLVMDIBuilderRef Builder, const char *Filename, size_t FilenameLen, const char *Directory, size_t DirectoryLen)
 Create a file descriptor to hold debugging information for a file. More...
 
LLVMMetadataRef LLVMDIBuilderCreateModule (LLVMDIBuilderRef Builder, LLVMMetadataRef ParentScope, const char *Name, size_t NameLen, const char *ConfigMacros, size_t ConfigMacrosLen, const char *IncludePath, size_t IncludePathLen, const char *ISysRoot, size_t ISysRootLen)
 Creates a new descriptor for a module with the specified parent scope. More...
 
LLVMMetadataRef LLVMDIBuilderCreateNameSpace (LLVMDIBuilderRef Builder, LLVMMetadataRef ParentScope, const char *Name, size_t NameLen, LLVMBool ExportSymbols)
 Creates a new descriptor for a namespace with the specified parent scope. More...
 
LLVMMetadataRef LLVMDIBuilderCreateFunction (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, const char *LinkageName, size_t LinkageNameLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty, LLVMBool IsLocalToUnit, LLVMBool IsDefinition, unsigned ScopeLine, LLVMDIFlags Flags, LLVMBool IsOptimized)
 Create a new descriptor for the specified subprogram. More...
 
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line, unsigned Col)
 Create a descriptor for a lexical block with the specified parent context. More...
 
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlockFile (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Discriminator)
 Create a descriptor for a lexical block with a new file attached. More...
 
LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromNamespace (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef NS, LLVMMetadataRef File, unsigned Line)
 Create a descriptor for an imported namespace. More...
 
LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromAlias (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef ImportedEntity, LLVMMetadataRef File, unsigned Line)
 Create a descriptor for an imported module that aliases another imported entity descriptor. More...
 
LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromModule (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef M, LLVMMetadataRef File, unsigned Line)
 Create a descriptor for an imported module. More...
 
LLVMMetadataRef LLVMDIBuilderCreateImportedDeclaration (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef Decl, LLVMMetadataRef File, unsigned Line, const char *Name, size_t NameLen)
 Create a descriptor for an imported function, type, or variable. More...
 
LLVMMetadataRef LLVMDIBuilderCreateDebugLocation (LLVMContextRef Ctx, unsigned Line, unsigned Column, LLVMMetadataRef Scope, LLVMMetadataRef InlinedAt)
 Creates a new DebugLocation that describes a source location. More...
 
unsigned LLVMDILocationGetLine (LLVMMetadataRef Location)
 Get the line number of this debug location. More...
 
unsigned LLVMDILocationGetColumn (LLVMMetadataRef Location)
 Get the column number of this debug location. More...
 
LLVMMetadataRef LLVMDILocationGetScope (LLVMMetadataRef Location)
 Get the local scope associated with this debug location. More...
 
LLVMMetadataRef LLVMDIBuilderCreateEnumerationType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef *Elements, unsigned NumElements, LLVMMetadataRef ClassTy)
 Create debugging information entry for an enumeration. More...
 
LLVMMetadataRef LLVMDIBuilderCreateUnionType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags, LLVMMetadataRef *Elements, unsigned NumElements, unsigned RunTimeLang, const char *UniqueId, size_t UniqueIdLen)
 Create debugging information entry for a union. More...
 
LLVMMetadataRef LLVMDIBuilderCreateArrayType (LLVMDIBuilderRef Builder, uint64_t Size, uint32_t AlignInBits, LLVMMetadataRef Ty, LLVMMetadataRef *Subscripts, unsigned NumSubscripts)
 Create debugging information entry for an array. More...
 
LLVMMetadataRef LLVMDIBuilderCreateVectorType (LLVMDIBuilderRef Builder, uint64_t Size, uint32_t AlignInBits, LLVMMetadataRef Ty, LLVMMetadataRef *Subscripts, unsigned NumSubscripts)
 Create debugging information entry for a vector type. More...
 
LLVMMetadataRef LLVMDIBuilderCreateBasicType (LLVMDIBuilderRef Builder, const char *Name, size_t NameLen, uint64_t SizeInBits, LLVMDWARFTypeEncoding Encoding)
 Create debugging information entry for a basic type. More...
 
LLVMMetadataRef LLVMDIBuilderCreatePointerType (LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeTy, uint64_t SizeInBits, uint32_t AlignInBits, unsigned AddressSpace, const char *Name, size_t NameLen)
 Create debugging information entry for a pointer. More...
 
LLVMMetadataRef LLVMDIBuilderCreateStructType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags, LLVMMetadataRef DerivedFrom, LLVMMetadataRef *Elements, unsigned NumElements, unsigned RunTimeLang, LLVMMetadataRef VTableHolder, const char *UniqueId, size_t UniqueIdLen)
 Create debugging information entry for a struct. More...
 
LLVMMetadataRef LLVMDIBuilderCreateMemberType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits, LLVMDIFlags Flags, LLVMMetadataRef Ty)
 Create debugging information entry for a member. More...
 
LLVMMetadataRef LLVMDIBuilderCreateUnspecifiedType (LLVMDIBuilderRef Builder, const char *Name, size_t NameLen)
 Create a DWARF unspecified type. More...
 
LLVMMetadataRef LLVMDIBuilderCreateStaticMemberType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, LLVMMetadataRef Type, LLVMDIFlags Flags, LLVMValueRef ConstantVal, uint32_t AlignInBits)
 Create debugging information entry for a C++ static data member. More...
 
LLVMMetadataRef LLVMDIBuilderCreateObjCIVar (LLVMDIBuilderRef Builder, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits, LLVMDIFlags Flags, LLVMMetadataRef Ty, LLVMMetadataRef PropertyNode)
 Create debugging information entry for Objective-C instance variable. More...
 
LLVMMetadataRef LLVMDIBuilderCreateObjCProperty (LLVMDIBuilderRef Builder, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo, const char *GetterName, size_t GetterNameLen, const char *SetterName, size_t SetterNameLen, unsigned PropertyAttributes, LLVMMetadataRef Ty)
 Create debugging information entry for Objective-C property. More...
 
LLVMMetadataRef LLVMDIBuilderCreateObjectPointerType (LLVMDIBuilderRef Builder, LLVMMetadataRef Type)
 Create a uniqued DIType* clone with FlagObjectPointer and FlagArtificial set. More...
 
LLVMMetadataRef LLVMDIBuilderCreateTypedef (LLVMDIBuilderRef Builder, LLVMMetadataRef Type, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Scope)
 Create debugging information entry for a typedef. More...
 
LLVMMetadataRef LLVMDIBuilderCreateInheritance (LLVMDIBuilderRef Builder, LLVMMetadataRef Ty, LLVMMetadataRef BaseTy, uint64_t BaseOffset, uint32_t VBPtrOffset, LLVMDIFlags Flags)
 Create debugging information entry to establish inheritance relationship between two types. More...
 
LLVMMetadataRef LLVMDIBuilderCreateForwardDecl (LLVMDIBuilderRef Builder, unsigned Tag, const char *Name, size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line, unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits, const char *UniqueIdentifier, size_t UniqueIdentifierLen)
 Create a permanent forward-declared type. More...
 
LLVMMetadataRef LLVMDIBuilderCreateReplaceableCompositeType (LLVMDIBuilderRef Builder, unsigned Tag, const char *Name, size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line, unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags, const char *UniqueIdentifier, size_t UniqueIdentifierLen)
 Create a temporary forward-declared type. More...
 
LLVMMetadataRef LLVMDIBuilderCreateQualifiedType (LLVMDIBuilderRef Builder, unsigned Tag, LLVMMetadataRef Type)
 Create debugging information entry for a qualified type, e.g. More...
 
LLVMMetadataRef LLVMDIBuilderCreateReferenceType (LLVMDIBuilderRef Builder, unsigned Tag, LLVMMetadataRef Type)
 Create debugging information entry for a c++ style reference or rvalue reference type. More...
 
LLVMMetadataRef LLVMDIBuilderCreateNullPtrType (LLVMDIBuilderRef Builder)
 Create C++11 nullptr type. More...
 
LLVMMetadataRef LLVMDIBuilderCreateMemberPointerType (LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeType, LLVMMetadataRef ClassType, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags)
 Create debugging information entry for a pointer to member. More...
 
LLVMMetadataRef LLVMDIBuilderCreateBitFieldMemberType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits, uint64_t OffsetInBits, uint64_t StorageOffsetInBits, LLVMDIFlags Flags, LLVMMetadataRef Type)
 Create debugging information entry for a bit field member. More...
 
LLVMMetadataRef LLVMDIBuilderCreateClassType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits, LLVMDIFlags Flags, LLVMMetadataRef DerivedFrom, LLVMMetadataRef *Elements, unsigned NumElements, LLVMMetadataRef VTableHolder, LLVMMetadataRef TemplateParamsNode, const char *UniqueIdentifier, size_t UniqueIdentifierLen)
 Create debugging information entry for a class. More...
 
LLVMMetadataRef LLVMDIBuilderCreateArtificialType (LLVMDIBuilderRef Builder, LLVMMetadataRef Type)
 Create a uniqued DIType* clone with FlagArtificial set. More...
 
const charLLVMDITypeGetName (LLVMMetadataRef DType, size_t *Length)
 Get the name of this DIType. More...
 
uint64_t LLVMDITypeGetSizeInBits (LLVMMetadataRef DType)
 Get the size of this DIType in bits. More...
 
uint64_t LLVMDITypeGetOffsetInBits (LLVMMetadataRef DType)
 Get the offset of this DIType in bits. More...
 
uint32_t LLVMDITypeGetAlignInBits (LLVMMetadataRef DType)
 Get the alignment of this DIType in bits. More...
 
unsigned LLVMDITypeGetLine (LLVMMetadataRef DType)
 Get the source line where this DIType is declared. More...
 
LLVMDIFlags LLVMDITypeGetFlags (LLVMMetadataRef DType)
 Get the flags associated with this DIType. More...
 
LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray (LLVMDIBuilderRef Builder, LLVMMetadataRef *Types, size_t Length)
 Create a type array. More...
 
LLVMMetadataRef LLVMDIBuilderCreateSubroutineType (LLVMDIBuilderRef Builder, LLVMMetadataRef File, LLVMMetadataRef *ParameterTypes, unsigned NumParameterTypes, LLVMDIFlags Flags)
 Create subroutine type. More...
 
LLVMMetadataRef LLVMDIBuilderCreateExpression (LLVMDIBuilderRef Builder, int64_t *Addr, size_t Length)
 Create a new descriptor for the specified variable which has a complex address expression for its address. More...
 
LLVMMetadataRef LLVMDIBuilderCreateConstantValueExpression (LLVMDIBuilderRef Builder, int64_t Value)
 Create a new descriptor for the specified variable that does not have an address, but does have a constant value. More...
 
LLVMMetadataRef LLVMDIBuilderCreateGlobalVariableExpression (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, const char *Linkage, size_t LinkLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty, LLVMBool LocalToUnit, LLVMMetadataRef Expr, LLVMMetadataRef Decl, uint32_t AlignInBits)
 Create a new descriptor for the specified variable. More...
 
LLVMMetadataRef LLVMTemporaryMDNode (LLVMContextRef Ctx, LLVMMetadataRef *Data, size_t Count)
 Create a new temporary MDNode. More...
 
void LLVMDisposeTemporaryMDNode (LLVMMetadataRef TempNode)
 Deallocate a temporary node. More...
 
void LLVMMetadataReplaceAllUsesWith (LLVMMetadataRef TargetMetadata, LLVMMetadataRef Replacement)
 Replace all uses of temporary metadata. More...
 
LLVMMetadataRef LLVMDIBuilderCreateTempGlobalVariableFwdDecl (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, const char *Linkage, size_t LnkLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty, LLVMBool LocalToUnit, LLVMMetadataRef Decl, uint32_t AlignInBits)
 Create a new descriptor for the specified global variable that is temporary and meant to be RAUWed. More...
 
LLVMValueRef LLVMDIBuilderInsertDeclareBefore (LLVMDIBuilderRef Builder, LLVMValueRef Storage, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DL, LLVMValueRef Instr)
 Insert a new llvm.dbg.declare intrinsic call before the given instruction. More...
 
LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd (LLVMDIBuilderRef Builder, LLVMValueRef Storage, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DL, LLVMBasicBlockRef Block)
 Insert a new llvm.dbg.declare intrinsic call at the end of the given basic block. More...
 
LLVMValueRef LLVMDIBuilderInsertDbgValueBefore (LLVMDIBuilderRef Builder, LLVMValueRef Val, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMValueRef Instr)
 Insert a new llvm.dbg.value intrinsic call before the given instruction. More...
 
LLVMValueRef LLVMDIBuilderInsertDbgValueAtEnd (LLVMDIBuilderRef Builder, LLVMValueRef Val, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMBasicBlockRef Block)
 Insert a new llvm.dbg.value intrinsic call at the end of the given basic block. More...
 
LLVMMetadataRef LLVMDIBuilderCreateAutoVariable (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty, LLVMBool AlwaysPreserve, LLVMDIFlags Flags, uint32_t AlignInBits)
 Create a new descriptor for a local auto variable. More...
 
LLVMMetadataRef LLVMDIBuilderCreateParameterVariable (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, unsigned ArgNo, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty, LLVMBool AlwaysPreserve, LLVMDIFlags Flags)
 Create a new descriptor for a function parameter variable. More...
 
LLVMMetadataRef LLVMDIBuilderGetOrCreateSubrange (LLVMDIBuilderRef Builder, int64_t Lo, int64_t Count)
 Create a descriptor for a value range. More...
 
LLVMMetadataRef LLVMDIBuilderGetOrCreateArray (LLVMDIBuilderRef Builder, LLVMMetadataRef *Data, size_t Length)
 Create an array of DI Nodes. More...
 
LLVMMetadataRef LLVMGetSubprogram (LLVMValueRef Func)
 Get the metadata of the subprogram attached to a function. More...
 
void LLVMSetSubprogram (LLVMValueRef Func, LLVMMetadataRef SP)
 Set the subprogram attached to a function. More...
 

Macro Definition Documentation

◆ HANDLE_DW_LANG

#define HANDLE_DW_LANG (   ID,
  NAME,
  VERSION,
  VENDOR 
)    case LLVMDWARFSourceLanguage##NAME: return ID;

Function Documentation

◆ LLVMCreateDIBuilder()

LLVMDIBuilderRef LLVMCreateDIBuilder ( LLVMModuleRef  M)

Construct a builder for a module and collect unresolved nodes attached to the module in order to resolve cycles during a call to LLVMDIBuilderFinalize.

Definition at line 731 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMCreateDIBuilderDisallowUnresolved()

LLVMDIBuilderRef LLVMCreateDIBuilderDisallowUnresolved ( LLVMModuleRef  M)

Construct a builder for a module, and do not allow for unresolved nodes attached to the module.

Definition at line 727 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDebugMetadataVersion()

unsigned LLVMDebugMetadataVersion ( void  )

The current debug metadata version number.

Definition at line 723 of file DebugInfo.cpp.

References llvm::DEBUG_METADATA_VERSION.

◆ LLVMDIBuilderCreateArrayType()

LLVMMetadataRef LLVMDIBuilderCreateArrayType ( LLVMDIBuilderRef  Builder,
uint64_t  Size,
uint32_t  AlignInBits,
LLVMMetadataRef  Ty,
LLVMMetadataRef Subscripts,
unsigned  NumSubscripts 
)

Create debugging information entry for an array.

Parameters
BuilderThe DIBuilder.
SizeArray size.
AlignInBitsAlignment.
TyElement type.
SubscriptsSubscripts.
NumSubscriptsNumber of subscripts.

Definition at line 927 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateArtificialType()

LLVMMetadataRef LLVMDIBuilderCreateArtificialType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Type 
)

Create a uniqued DIType* clone with FlagArtificial set.

Parameters
BuilderThe DIBuilder.
TypeThe underlying type.

Definition at line 1160 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateAutoVariable()

LLVMMetadataRef LLVMDIBuilderCreateAutoVariable ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Ty,
LLVMBool  AlwaysPreserve,
LLVMDIFlags  Flags,
uint32_t  AlignInBits 
)

Create a new descriptor for a local auto variable.

Parameters
BuilderThe DIBuilder.
ScopeThe local scope the variable is declared in.
NameVariable name.
NameLenLength of variable name.
FileFile where this variable is defined.
LineNoLine number.
TyMetadata describing the type of the variable.
AlwaysPreserveIf true, this descriptor will survive optimizations.
FlagsFlags.
AlignInBitsVariable alignment.

Definition at line 1317 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateBasicType()

LLVMMetadataRef LLVMDIBuilderCreateBasicType ( LLVMDIBuilderRef  Builder,
const char Name,
size_t  NameLen,
uint64_t  SizeInBits,
LLVMDWARFTypeEncoding  Encoding 
)

Create debugging information entry for a basic type.

Parameters
BuilderThe DIBuilder.
NameType name.
NameLenLength of type name.
SizeInBitsSize of the type.
EncodingDWARF encoding code, e.g. LLVMDWARFTypeEncoding_float.

Definition at line 949 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateBitFieldMemberType()

LLVMMetadataRef LLVMDIBuilderCreateBitFieldMemberType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNumber,
uint64_t  SizeInBits,
uint64_t  OffsetInBits,
uint64_t  StorageOffsetInBits,
LLVMDIFlags  Flags,
LLVMMetadataRef  Type 
)

Create debugging information entry for a bit field member.

Parameters
BuilderThe DIBuilder.
ScopeMember scope.
NameMember name.
NameLenLength of member name.
FileFile where this member is defined.
LineNumberLine number.
SizeInBitsMember size.
OffsetInBitsMember offset.
StorageOffsetInBitsMember storage offset.
FlagsFlags to encode member attribute.
TypeParent type.

Definition at line 1124 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateClassType()

LLVMMetadataRef LLVMDIBuilderCreateClassType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNumber,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
uint64_t  OffsetInBits,
LLVMDIFlags  Flags,
LLVMMetadataRef  DerivedFrom,
LLVMMetadataRef Elements,
unsigned  NumElements,
LLVMMetadataRef  VTableHolder,
LLVMMetadataRef  TemplateParamsNode,
const char UniqueIdentifier,
size_t  UniqueIdentifierLen 
)

Create debugging information entry for a class.

Parameters
ScopeScope in which this class is defined.
NameClass name.
NameLenThe length of the C string passed to Name.
FileFile where this member is defined.
LineNumberLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
OffsetInBitsMember offset.
FlagsFlags to encode member attribute, e.g. private.
DerivedFromDebug info of the base class of this type.
ElementsClass members.
NumElementsNumber of class elements.
VTableHolderDebug 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.
TemplateParamsNodeTemplate type parameters.
UniqueIdentifierA unique identifier for the type.
UniqueIdentifierLenLength of the unique identifier.

Definition at line 1139 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateCompileUnit()

LLVMMetadataRef LLVMDIBuilderCreateCompileUnit ( LLVMDIBuilderRef  Builder,
LLVMDWARFSourceLanguage  Lang,
LLVMMetadataRef  FileRef,
const char Producer,
size_t  ProducerLen,
LLVMBool  isOptimized,
const char Flags,
size_t  FlagsLen,
unsigned  RuntimeVer,
const char SplitName,
size_t  SplitNameLen,
LLVMDWARFEmissionKind  Kind,
unsigned  DWOId,
LLVMBool  SplitDebugInlining,
LLVMBool  DebugInfoForProfiling 
)

A CompileUnit provides an anchor for all debugging information generated during this instance of compilation.

Parameters
LangSource programming language, eg. LLVMDWARFSourceLanguageC99
FileRefFile info.
ProducerIdentify the producer of debugging information and code. Usually this is a compiler version string.
ProducerLenThe length of the C string passed to Producer.
isOptimizedA boolean flag which indicates whether optimization is enabled or not.
FlagsThis 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.
FlagsLenThe length of the C string passed to Flags.
RuntimeVerThis indicates runtime version for languages like Objective-C.
SplitNameThe name of the file that we'll split debug info out into.
SplitNameLenThe length of the C string passed to SplitName.
KindThe kind of debug information to generate.
DWOIdThe DWOId if this is a split skeleton compile unit.
SplitDebugInliningWhether to emit inline debug info.
DebugInfoForProfilingWhether to emit extra debug info for profile collection.

Definition at line 751 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, map_from_llvmDWARFsourcelanguage(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateConstantValueExpression()

LLVMMetadataRef LLVMDIBuilderCreateConstantValueExpression ( LLVMDIBuilderRef  Builder,
int64_t  Value 
)

Create a new descriptor for the specified variable that does not have an address, but does have a constant value.

Parameters
BuilderThe DIBuilder.
ValueThe constant value.

Definition at line 1217 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateDebugLocation()

LLVMMetadataRef LLVMDIBuilderCreateDebugLocation ( LLVMContextRef  Ctx,
unsigned  Line,
unsigned  Column,
LLVMMetadataRef  Scope,
LLVMMetadataRef  InlinedAt 
)

Creates a new DebugLocation that describes a source location.

Parameters
LineThe line in the source file.
ColumnThe column in the source file.
ScopeThe scope in which the location resides.
InlinedAtThe scope where this location was inlined, if at all. (optional).
Note
If the item to which this location is attached cannot be attributed to a source line, pass 0 for the line and column.

Definition at line 880 of file DebugInfo.cpp.

References llvm::MDNode::get(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateEnumerationType()

LLVMMetadataRef LLVMDIBuilderCreateEnumerationType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNumber,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
LLVMMetadataRef Elements,
unsigned  NumElements,
LLVMMetadataRef  ClassTy 
)

Create debugging information entry for an enumeration.

Parameters
BuilderThe DIBuilder.
ScopeScope in which this enumeration is defined.
NameEnumeration name.
NameLenLength of enumeration name.
FileFile where this member is defined.
LineNumberLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
ElementsEnumeration elements.
NumElementsNumber of enumeration elements.
ClassTyUnderlying type of a C++11/ObjC fixed enum.

Definition at line 899 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateExpression()

LLVMMetadataRef LLVMDIBuilderCreateExpression ( LLVMDIBuilderRef  Builder,
int64_t *  Addr,
size_t  Length 
)

Create a new descriptor for the specified variable which has a complex address expression for its address.

Parameters
BuilderThe DIBuilder.
AddrAn array of complex address operations.
LengthLength of the address operation array.

Definition at line 1210 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateFile()

LLVMMetadataRef LLVMDIBuilderCreateFile ( LLVMDIBuilderRef  Builder,
const char Filename,
size_t  FilenameLen,
const char Directory,
size_t  DirectoryLen 
)

Create a file descriptor to hold debugging information for a file.

Parameters
BuilderThe DIBuilder.
FilenameFile name.
FilenameLenThe length of the C string passed to Filename.
DirectoryDirectory.
DirectoryLenThe length of the C string passed to Directory.

Definition at line 770 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateForwardDecl()

LLVMMetadataRef LLVMDIBuilderCreateForwardDecl ( LLVMDIBuilderRef  Builder,
unsigned  Tag,
const char Name,
size_t  NameLen,
LLVMMetadataRef  Scope,
LLVMMetadataRef  File,
unsigned  Line,
unsigned  RuntimeLang,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
const char UniqueIdentifier,
size_t  UniqueIdentifierLen 
)

Create a permanent forward-declared type.

Parameters
BuilderThe DIBuilder.
TagA unique tag for this type.
NameType name.
NameLenLength of type name.
ScopeType scope.
FileFile where this type is defined.
LineLine number where this type is defined.
RuntimeLangIndicates runtime version for languages like Objective-C.
SizeInBitsMember size.
AlignInBitsMember alignment.
UniqueIdentifierA unique identifier for the type.
UniqueIdentifierLenLength of the unique identifier.

Definition at line 1066 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateFunction()

LLVMMetadataRef LLVMDIBuilderCreateFunction ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
const char LinkageName,
size_t  LinkageNameLen,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Ty,
LLVMBool  IsLocalToUnit,
LLVMBool  IsDefinition,
unsigned  ScopeLine,
LLVMDIFlags  Flags,
LLVMBool  IsOptimized 
)

Create a new descriptor for the specified subprogram.

Parameters
BuilderThe DIBuilder.
ScopeFunction scope.
NameFunction name.
NameLenLength of enumeration name.
LinkageNameMangled function name.
LinkageNameLenLength of linkage name.
FileFile where this variable is defined.
LineNoLine number.
TyFunction type.
IsLocalToUnitTrue if this function is not externally visible.
IsDefinitionTrue if this is a function definition.
ScopeLineSet to the beginning of the scope this starts
FlagsE.g.: LLVMDIFlagLValueReference. These flags are used to emit dwarf attributes.
IsOptimizedTrue if optimization is ON.

Definition at line 798 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateGlobalVariableExpression()

LLVMMetadataRef LLVMDIBuilderCreateGlobalVariableExpression ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
const char Linkage,
size_t  LinkLen,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Ty,
LLVMBool  LocalToUnit,
LLVMMetadataRef  Expr,
LLVMMetadataRef  Decl,
uint32_t  AlignInBits 
)

Create a new descriptor for the specified variable.

Parameters
ScopeVariable scope.
NameName of the variable.
NameLenThe length of the C string passed to Name.
LinkageMangled name of the variable.
LinkLenThe length of the C string passed to Linkage.
FileFile where this variable is defined.
LineNoLine number.
TyVariable Type.
LocalToUnitBoolean flag indicate whether this variable is externally visible or not.
ExprThe location of the global relative to the attached GlobalVariable.
DeclReference to the corresponding declaration.
AlignInBitsVariable alignment(or 0 if no alignment attr was specified)

Definition at line 1223 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateImportedDeclaration()

LLVMMetadataRef LLVMDIBuilderCreateImportedDeclaration ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  Decl,
LLVMMetadataRef  File,
unsigned  Line,
const char Name,
size_t  NameLen 
)

Create a descriptor for an imported function, type, or variable.

Suitable for e.g. FORTRAN-style USE declarations.

Parameters
BuilderThe DIBuilder.
ScopeThe scope this module is imported into.
DeclThe declaration (or definition) of a function, type, or variable.
FileFile where the declaration is located.
LineLine number of the declaration.
NameA name that uniquely identifies this imported declaration.
NameLenThe length of the C string passed to Name.

Definition at line 867 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateImportedModuleFromAlias()

LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromAlias ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  ImportedEntity,
LLVMMetadataRef  File,
unsigned  Line 
)

Create a descriptor for an imported module that aliases another imported entity descriptor.

Parameters
BuilderThe DIBuilder.
ScopeThe scope this module is imported into
ImportedEntityPrevious imported entity to alias.
FileFile where the declaration is located.
LineLine number of the declaration.

Definition at line 843 of file DebugInfo.cpp.

References createImportedModule(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateImportedModuleFromModule()

LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromModule ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  M,
LLVMMetadataRef  File,
unsigned  Line 
)

Create a descriptor for an imported module.

Parameters
BuilderThe DIBuilder.
ScopeThe scope this module is imported into
MThe module being imported here
FileFile where the declaration is located.
LineLine number of the declaration.

Definition at line 855 of file DebugInfo.cpp.

References createImportedModule(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateImportedModuleFromNamespace()

LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromNamespace ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  NS,
LLVMMetadataRef  File,
unsigned  Line 
)

Create a descriptor for an imported namespace.

Suitable for e.g. C++ using declarations.

Parameters
BuilderThe DIBuilder.
ScopeThe scope this module is imported into
FileFile where the declaration is located.
LineLine number of the declaration.

Definition at line 831 of file DebugInfo.cpp.

References createImportedModule(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateInheritance()

LLVMMetadataRef LLVMDIBuilderCreateInheritance ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Ty,
LLVMMetadataRef  BaseTy,
uint64_t  BaseOffset,
uint32_t  VBPtrOffset,
LLVMDIFlags  Flags 
)

Create debugging information entry to establish inheritance relationship between two types.

Parameters
BuilderThe DIBuilder.
TyOriginal type.
BaseTyBase type. Ty is inherits from base.
BaseOffsetBase offset.
VBPtrOffsetVirtual base pointer offset.
FlagsFlags to describe inheritance attribute, e.g. private

Definition at line 1056 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateLexicalBlock()

LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  File,
unsigned  Line,
unsigned  Column 
)

Create a descriptor for a lexical block with the specified parent context.

Parameters
BuilderThe DIBuilder.
ScopeParent lexical block.
FileSource file.
LineThe line in the source file.
ColumnThe column in the source file.

Definition at line 812 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateLexicalBlockFile()

LLVMMetadataRef LLVMDIBuilderCreateLexicalBlockFile ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  File,
unsigned  Discriminator 
)

Create a descriptor for a lexical block with a new file attached.

Parameters
BuilderThe DIBuilder.
ScopeLexical block.
FileSource file.
DiscriminatorDWARF path discriminator value.

Definition at line 821 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateMemberPointerType()

LLVMMetadataRef LLVMDIBuilderCreateMemberPointerType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  PointeeType,
LLVMMetadataRef  ClassType,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
LLVMDIFlags  Flags 
)

Create debugging information entry for a pointer to member.

Parameters
BuilderThe DIBuilder.
PointeeTypeType pointed to by this pointer.
ClassTypeType for which this pointer points to members of.
SizeInBitsSize.
AlignInBitsAlignment.
FlagsFlags.

Definition at line 1111 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateMemberType()

LLVMMetadataRef LLVMDIBuilderCreateMemberType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNo,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
uint64_t  OffsetInBits,
LLVMDIFlags  Flags,
LLVMMetadataRef  Ty 
)

Create debugging information entry for a member.

Parameters
BuilderThe DIBuilder.
ScopeMember scope.
NameMember name.
NameLenLength of member name.
FileFile where this member is defined.
LineNoLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
OffsetInBitsMember offset.
FlagsFlags to encode member attribute, e.g. private
TyParent type.

Definition at line 981 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateModule()

LLVMMetadataRef LLVMDIBuilderCreateModule ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  ParentScope,
const char Name,
size_t  NameLen,
const char ConfigMacros,
size_t  ConfigMacrosLen,
const char IncludePath,
size_t  IncludePathLen,
const char ISysRoot,
size_t  ISysRootLen 
)

Creates a new descriptor for a module with the specified parent scope.

Parameters
BuilderThe DIBuilder.
ParentScopeThe parent scope containing this module declaration.
NameModule name.
NameLenThe length of the C string passed to Name.
ConfigMacrosA space-separated shell-quoted list of -D macro definitions as they would appear on a command line.
ConfigMacrosLenThe length of the C string passed to ConfigMacros.
IncludePathThe path to the module map file.
IncludePathLenThe length of the C string passed to IncludePath.
ISysRootThe Clang system root (value of -isysroot).
ISysRootLenThe length of the C string passed to ISysRoot.

Definition at line 778 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateNameSpace()

LLVMMetadataRef LLVMDIBuilderCreateNameSpace ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  ParentScope,
const char Name,
size_t  NameLen,
LLVMBool  ExportSymbols 
)

Creates a new descriptor for a namespace with the specified parent scope.

Parameters
BuilderThe DIBuilder.
ParentScopeThe parent scope containing this module declaration.
NameNameSpace name.
NameLenThe length of the C string passed to Name.
ExportSymbolsWhether or not the namespace exports symbols, e.g. this is true of C++ inline namespaces.

Definition at line 790 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateNullPtrType()

LLVMMetadataRef LLVMDIBuilderCreateNullPtrType ( LLVMDIBuilderRef  Builder)

Create C++11 nullptr type.

Parameters
BuilderThe DIBuilder.

Definition at line 1106 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateObjCIVar()

LLVMMetadataRef LLVMDIBuilderCreateObjCIVar ( LLVMDIBuilderRef  Builder,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNo,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
uint64_t  OffsetInBits,
LLVMDIFlags  Flags,
LLVMMetadataRef  Ty,
LLVMMetadataRef  PropertyNode 
)

Create debugging information entry for Objective-C instance variable.

Parameters
BuilderThe DIBuilder.
NameMember name.
NameLenThe length of the C string passed to Name.
FileFile where this member is defined.
LineNoLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
OffsetInBitsMember offset.
FlagsFlags to encode member attribute, e.g. private
TyParent type.
PropertyNodeProperty associated with this ivar.

Definition at line 1011 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateObjCProperty()

LLVMMetadataRef LLVMDIBuilderCreateObjCProperty ( LLVMDIBuilderRef  Builder,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNo,
const char GetterName,
size_t  GetterNameLen,
const char SetterName,
size_t  SetterNameLen,
unsigned  PropertyAttributes,
LLVMMetadataRef  Ty 
)

Create debugging information entry for Objective-C property.

Parameters
BuilderThe DIBuilder.
NameProperty name.
NameLenThe length of the C string passed to Name.
FileFile where this property is defined.
LineNoLine number.
GetterNameName of the Objective C property getter selector.
GetterNameLenThe length of the C string passed to GetterName.
SetterNameName of the Objective C property setter selector.
SetterNameLenThe length of the C string passed to SetterName.
PropertyAttributesObjective C property attributes.
TyType.

Definition at line 1025 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateObjectPointerType()

LLVMMetadataRef LLVMDIBuilderCreateObjectPointerType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Type 
)

Create a uniqued DIType* clone with FlagObjectPointer and FlagArtificial set.

Parameters
BuilderThe DIBuilder.
TypeThe underlying type to which this pointer points.

Definition at line 1039 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateParameterVariable()

LLVMMetadataRef LLVMDIBuilderCreateParameterVariable ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
unsigned  ArgNo,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Ty,
LLVMBool  AlwaysPreserve,
LLVMDIFlags  Flags 
)

Create a new descriptor for a function parameter variable.

Parameters
BuilderThe DIBuilder.
ScopeThe local scope the variable is declared in.
NameVariable name.
NameLenLength of variable name.
ArgNoUnique argument number for this variable; starts at 1.
FileFile where this variable is defined.
LineNoLine number.
TyMetadata describing the type of the variable.
AlwaysPreserveIf true, this descriptor will survive optimizations.
FlagsFlags.

Definition at line 1327 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreatePointerType()

LLVMMetadataRef LLVMDIBuilderCreatePointerType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  PointeeTy,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
unsigned  AddressSpace,
const char Name,
size_t  NameLen 
)

Create debugging information entry for a pointer.

Parameters
BuilderThe DIBuilder.
PointeeTyType pointed by this pointer.
SizeInBitsSize.
AlignInBitsAlignment. (optional, pass 0 to ignore)
AddressSpaceDWARF address space. (optional, pass 0 to ignore)
NamePointer type name. (optional)
NameLenLength of pointer type name. (optional)

Definition at line 956 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateQualifiedType()

LLVMMetadataRef LLVMDIBuilderCreateQualifiedType ( LLVMDIBuilderRef  Builder,
unsigned  Tag,
LLVMMetadataRef  Type 
)

Create debugging information entry for a qualified type, e.g.

'const int'.

Parameters
BuilderThe DIBuilder.
TagTag identifying type, e.g. LLVMDWARFTypeQualifier_volatile_type
TypeBase Type.

Definition at line 1092 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateReferenceType()

LLVMMetadataRef LLVMDIBuilderCreateReferenceType ( LLVMDIBuilderRef  Builder,
unsigned  Tag,
LLVMMetadataRef  Type 
)

Create debugging information entry for a c++ style reference or rvalue reference type.

Parameters
BuilderThe DIBuilder.
TagTag identifying type,
TypeBase Type.

Definition at line 1099 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateReplaceableCompositeType()

LLVMMetadataRef LLVMDIBuilderCreateReplaceableCompositeType ( LLVMDIBuilderRef  Builder,
unsigned  Tag,
const char Name,
size_t  NameLen,
LLVMMetadataRef  Scope,
LLVMMetadataRef  File,
unsigned  Line,
unsigned  RuntimeLang,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
LLVMDIFlags  Flags,
const char UniqueIdentifier,
size_t  UniqueIdentifierLen 
)

Create a temporary forward-declared type.

Parameters
BuilderThe DIBuilder.
TagA unique tag for this type.
NameType name.
NameLenLength of type name.
ScopeType scope.
FileFile where this type is defined.
LineLine number where this type is defined.
RuntimeLangIndicates runtime version for languages like Objective-C.
SizeInBitsMember size.
AlignInBitsMember alignment.
FlagsFlags.
UniqueIdentifierA unique identifier for the type.
UniqueIdentifierLenLength of the unique identifier.

Definition at line 1078 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateStaticMemberType()

LLVMMetadataRef LLVMDIBuilderCreateStaticMemberType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNumber,
LLVMMetadataRef  Type,
LLVMDIFlags  Flags,
LLVMValueRef  ConstantVal,
uint32_t  AlignInBits 
)

Create debugging information entry for a C++ static data member.

Parameters
BuilderThe DIBuilder.
ScopeMember scope.
NameMember name.
NameLenLength of member name.
FileFile where this member is declared.
LineNumberLine number.
TypeType of the static member.
FlagsFlags to encode member attribute, e.g. private.
ConstantValConst initializer of the member.
AlignInBitsMember alignment.

Definition at line 998 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateStructType()

LLVMMetadataRef LLVMDIBuilderCreateStructType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNumber,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
LLVMDIFlags  Flags,
LLVMMetadataRef  DerivedFrom,
LLVMMetadataRef Elements,
unsigned  NumElements,
unsigned  RunTimeLang,
LLVMMetadataRef  VTableHolder,
const char UniqueId,
size_t  UniqueIdLen 
)

Create debugging information entry for a struct.

Parameters
BuilderThe DIBuilder.
ScopeScope in which this struct is defined.
NameStruct name.
NameLenStruct name length.
FileFile where this member is defined.
LineNumberLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
FlagsFlags to encode member attribute, e.g. private
ElementsStruct elements.
NumElementsNumber of struct elements.
RunTimeLangOptional parameter, Objective-C runtime version.
VTableHolderThe object containing the vtable for the struct.
UniqueIdA unique identifier for the struct.
UniqueIdLenLength of the unique identifier for the struct.

Definition at line 965 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateSubroutineType()

LLVMMetadataRef LLVMDIBuilderCreateSubroutineType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  File,
LLVMMetadataRef ParameterTypes,
unsigned  NumParameterTypes,
LLVMDIFlags  Flags 
)

Create subroutine type.

Parameters
BuilderThe DIBuilder.
FileThe file in which the subroutine resides.
ParameterTypesAn array of subroutine parameter types. This includes return type at 0th index.
NumParameterTypesThe number of parameter types in ParameterTypes
FlagsE.g.: LLVMDIFlagLValueReference. These flags are used to emit dwarf attributes.

Definition at line 1199 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateTempGlobalVariableFwdDecl()

LLVMMetadataRef LLVMDIBuilderCreateTempGlobalVariableFwdDecl ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
const char Linkage,
size_t  LnkLen,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Ty,
LLVMBool  LocalToUnit,
LLVMMetadataRef  Decl,
uint32_t  AlignInBits 
)

Create a new descriptor for the specified global variable that is temporary and meant to be RAUWed.

Parameters
ScopeVariable scope.
NameName of the variable.
NameLenThe length of the C string passed to Name.
LinkageMangled name of the variable.
LnkLenThe length of the C string passed to Linkage.
FileFile where this variable is defined.
LineNoLine number.
TyVariable Type.
LocalToUnitBoolean flag indicate whether this variable is externally visible or not.
DeclReference to the corresponding declaration.
AlignInBitsVariable alignment(or 0 if no alignment attr was specified)

Definition at line 1259 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateTypedef()

LLVMMetadataRef LLVMDIBuilderCreateTypedef ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Type,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Scope 
)

Create debugging information entry for a typedef.

Parameters
BuilderThe DIBuilder.
TypeOriginal type.
NameTypedef name.
FileFile where this type is defined.
LineNoLine number.
ScopeThe surrounding context for the typedef.

Definition at line 1045 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateUnionType()

LLVMMetadataRef LLVMDIBuilderCreateUnionType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNumber,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
LLVMDIFlags  Flags,
LLVMMetadataRef Elements,
unsigned  NumElements,
unsigned  RunTimeLang,
const char UniqueId,
size_t  UniqueIdLen 
)

Create debugging information entry for a union.

Parameters
BuilderThe DIBuilder.
ScopeScope in which this union is defined.
NameUnion name.
NameLenLength of union name.
FileFile where this member is defined.
LineNumberLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
FlagsFlags to encode member attribute, e.g. private
ElementsUnion elements.
NumElementsNumber of union elements.
RunTimeLangOptional parameter, Objective-C runtime version.
UniqueIdA unique identifier for the union.
UniqueIdLenLength of unique identifier.

Definition at line 911 of file DebugInfo.cpp.

References llvm::ARMBuildAttrs::File, map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateUnspecifiedType()

LLVMMetadataRef LLVMDIBuilderCreateUnspecifiedType ( LLVMDIBuilderRef  Builder,
const char Name,
size_t  NameLen 
)

Create a DWARF unspecified type.

Parameters
BuilderThe DIBuilder.
NameThe unspecified type's name.
NameLenLength of type name.

Definition at line 992 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateVectorType()

LLVMMetadataRef LLVMDIBuilderCreateVectorType ( LLVMDIBuilderRef  Builder,
uint64_t  Size,
uint32_t  AlignInBits,
LLVMMetadataRef  Ty,
LLVMMetadataRef Subscripts,
unsigned  NumSubscripts 
)

Create debugging information entry for a vector type.

Parameters
BuilderThe DIBuilder.
SizeVector size.
AlignInBitsAlignment.
TyElement type.
SubscriptsSubscripts.
NumSubscriptsNumber of subscripts.

Definition at line 938 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderFinalize()

void LLVMDIBuilderFinalize ( LLVMDIBuilderRef  Builder)

Construct any deferred debug info descriptors.

Definition at line 747 of file DebugInfo.cpp.

References llvm::unwrap().

◆ LLVMDIBuilderGetOrCreateArray()

LLVMMetadataRef LLVMDIBuilderGetOrCreateArray ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef Data,
size_t  NumElements 
)

Create an array of DI Nodes.

Parameters
BuilderThe DIBuilder.
DataThe DI Node elements.
NumElementsNumber of DI Node elements.

Definition at line 1342 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderGetOrCreateSubrange()

LLVMMetadataRef LLVMDIBuilderGetOrCreateSubrange ( LLVMDIBuilderRef  Builder,
int64_t  LowerBound,
int64_t  Count 
)

Create a descriptor for a value range.

Parameters
BuilderThe DIBuilder.
LowerBoundLower bound of the subrange, e.g. 0 for C, 1 for Fortran.
CountCount of elements in the subrange.

Definition at line 1337 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderGetOrCreateTypeArray()

LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef Data,
size_t  NumElements 
)

Create a type array.

Parameters
BuilderThe DIBuilder.
DataThe type elements.
NumElementsNumber of type elements.

Definition at line 1191 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderInsertDbgValueAtEnd()

LLVMValueRef LLVMDIBuilderInsertDbgValueAtEnd ( LLVMDIBuilderRef  Builder,
LLVMValueRef  Val,
LLVMMetadataRef  VarInfo,
LLVMMetadataRef  Expr,
LLVMMetadataRef  DebugLoc,
LLVMBasicBlockRef  Block 
)

Insert a new llvm.dbg.value intrinsic call at the end of the given basic block.

If the basic block has a terminator instruction, the intrinsic is inserted before that terminator instruction.

Parameters
BuilderThe DIBuilder.
ValThe value of the variable.
VarInfoThe variable's debug info descriptor.
ExprA complex location expression for the variable.
DebugLocDebug info location.
BlockBasic block acting as a location for the new intrinsic.

Definition at line 1305 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderInsertDbgValueBefore()

LLVMValueRef LLVMDIBuilderInsertDbgValueBefore ( LLVMDIBuilderRef  Builder,
LLVMValueRef  Val,
LLVMMetadataRef  VarInfo,
LLVMMetadataRef  Expr,
LLVMMetadataRef  DebugLoc,
LLVMValueRef  Instr 
)

Insert a new llvm.dbg.value intrinsic call before the given instruction.

Parameters
BuilderThe DIBuilder.
ValThe value of the variable.
VarInfoThe variable's debug info descriptor.
ExprA complex location expression for the variable.
DebugLocDebug info location.
InstrInstruction acting as a location for the new intrinsic.

Definition at line 1293 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderInsertDeclareAtEnd()

LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd ( LLVMDIBuilderRef  Builder,
LLVMValueRef  Storage,
LLVMMetadataRef  VarInfo,
LLVMMetadataRef  Expr,
LLVMMetadataRef  DebugLoc,
LLVMBasicBlockRef  Block 
)

Insert a new llvm.dbg.declare intrinsic call at the end of the given basic block.

If the basic block has a terminator instruction, the intrinsic is inserted before that terminator instruction.

Parameters
BuilderThe DIBuilder.
StorageThe storage of the variable to declare.
VarInfoThe variable's debug info descriptor.
ExprA complex location expression for the variable.
DebugLocDebug info location.
BlockBasic block acting as a location for the new intrinsic.

Definition at line 1284 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderInsertDeclareBefore()

LLVMValueRef LLVMDIBuilderInsertDeclareBefore ( LLVMDIBuilderRef  Builder,
LLVMValueRef  Storage,
LLVMMetadataRef  VarInfo,
LLVMMetadataRef  Expr,
LLVMMetadataRef  DebugLoc,
LLVMValueRef  Instr 
)

Insert a new llvm.dbg.declare intrinsic call before the given instruction.

Parameters
BuilderThe DIBuilder.
StorageThe storage of the variable to declare.
VarInfoThe variable's debug info descriptor.
ExprA complex location expression for the variable.
DebugLocDebug info location.
InstrInstruction acting as a location for the new intrinsic.

Definition at line 1275 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDILocationGetColumn()

unsigned LLVMDILocationGetColumn ( LLVMMetadataRef  Location)

Get the column number of this debug location.

Parameters
LocationThe debug location.
See also
DILocation::getColumn()

Definition at line 891 of file DebugInfo.cpp.

◆ LLVMDILocationGetLine()

unsigned LLVMDILocationGetLine ( LLVMMetadataRef  Location)

Get the line number of this debug location.

Parameters
LocationThe debug location.
See also
DILocation::getLine()

Definition at line 887 of file DebugInfo.cpp.

◆ LLVMDILocationGetScope()

LLVMMetadataRef LLVMDILocationGetScope ( LLVMMetadataRef  Location)

Get the local scope associated with this debug location.

Parameters
LocationThe debug location.
See also
DILocation::getScope()

Definition at line 895 of file DebugInfo.cpp.

References llvm::wrap().

◆ LLVMDisposeDIBuilder()

void LLVMDisposeDIBuilder ( LLVMDIBuilderRef  Builder)

Deallocates the DIBuilder and everything it owns.

Note
You must call LLVMDIBuilderFinalize before this

Definition at line 743 of file DebugInfo.cpp.

References llvm::unwrap().

◆ LLVMDisposeTemporaryMDNode()

void LLVMDisposeTemporaryMDNode ( LLVMMetadataRef  TempNode)

Deallocate a temporary node.

Calls replaceAllUsesWith(nullptr) before deleting, so any remaining references will be reset.

Parameters
TempNodeThe temporary metadata node.

Definition at line 1247 of file DebugInfo.cpp.

References llvm::MDNode::deleteTemporary().

◆ LLVMDITypeGetAlignInBits()

uint32_t LLVMDITypeGetAlignInBits ( LLVMMetadataRef  DType)

Get the alignment of this DIType in bits.

Parameters
DTypeThe DIType.
See also
DIType::getAlignInBits()

Definition at line 1179 of file DebugInfo.cpp.

◆ LLVMDITypeGetFlags()

LLVMDIFlags LLVMDITypeGetFlags ( LLVMMetadataRef  DType)

Get the flags associated with this DIType.

Parameters
DTypeThe DIType.
See also
DIType::getFlags()

Definition at line 1187 of file DebugInfo.cpp.

References map_to_llvmDIFlags().

◆ LLVMDITypeGetLine()

unsigned LLVMDITypeGetLine ( LLVMMetadataRef  DType)

Get the source line where this DIType is declared.

Parameters
DTypeThe DIType.
See also
DIType::getLine()

Definition at line 1183 of file DebugInfo.cpp.

◆ LLVMDITypeGetName()

const char* LLVMDITypeGetName ( LLVMMetadataRef  DType,
size_t *  Length 
)

Get the name of this DIType.

Parameters
DTypeThe DIType.
LengthThe length of the returned string.
See also
DIType::getName()

Definition at line 1165 of file DebugInfo.cpp.

References llvm::StringRef::data(), getName(), and llvm::StringRef::size().

◆ LLVMDITypeGetOffsetInBits()

uint64_t LLVMDITypeGetOffsetInBits ( LLVMMetadataRef  DType)

Get the offset of this DIType in bits.

Parameters
DTypeThe DIType.
See also
DIType::getOffsetInBits()

Definition at line 1175 of file DebugInfo.cpp.

◆ LLVMDITypeGetSizeInBits()

uint64_t LLVMDITypeGetSizeInBits ( LLVMMetadataRef  DType)

Get the size of this DIType in bits.

Parameters
DTypeThe DIType.
See also
DIType::getSizeInBits()

Definition at line 1171 of file DebugInfo.cpp.

References llvm::getSizeInBits().

◆ LLVMGetModuleDebugMetadataVersion()

unsigned LLVMGetModuleDebugMetadataVersion ( LLVMModuleRef  M)

The version of debug metadata that's present in the provided Module.

Definition at line 735 of file DebugInfo.cpp.

References llvm::getDebugMetadataVersionFromModule(), and llvm::unwrap().

◆ LLVMGetSubprogram()

LLVMMetadataRef LLVMGetSubprogram ( LLVMValueRef  Func)

Get the metadata of the subprogram attached to a function.

See also
llvm::Function::getSubprogram()

Definition at line 1349 of file DebugInfo.cpp.

References getSubprogram(), and llvm::wrap().

◆ LLVMMetadataReplaceAllUsesWith()

void LLVMMetadataReplaceAllUsesWith ( LLVMMetadataRef  TempTargetMetadata,
LLVMMetadataRef  Replacement 
)

Replace all uses of temporary metadata.

Parameters
TempTargetMetadataThe temporary metadata node.
ReplacementThe replacement metadata node.

Definition at line 1251 of file DebugInfo.cpp.

References llvm::MDNode::deleteTemporary().

◆ LLVMSetSubprogram()

void LLVMSetSubprogram ( LLVMValueRef  Func,
LLVMMetadataRef  SP 
)

Set the subprogram attached to a function.

See also
llvm::Function::setSubprogram()

Definition at line 1353 of file DebugInfo.cpp.

◆ LLVMStripModuleDebugInfo()

LLVMBool LLVMStripModuleDebugInfo ( LLVMModuleRef  Module)

Strip debug info in the module if it exists.

To do this, we remove all calls to the debugger intrinsics and any named metadata for debugging. We also remove debug locations for instructions. Return true if module is modified.

Definition at line 739 of file DebugInfo.cpp.

References llvm::StripDebugInfo(), and llvm::unwrap().

◆ LLVMTemporaryMDNode()

LLVMMetadataRef LLVMTemporaryMDNode ( LLVMContextRef  Ctx,
LLVMMetadataRef Data,
size_t  NumElements 
)

Create a new temporary MDNode.

Suitable for use in constructing cyclic MDNode structures. A temporary MDNode is not uniqued, may be RAUW'd, and must be manually deleted with LLVMDisposeTemporaryMDNode.

Parameters
CtxThe context in which to construct the temporary node.
DataThe metadata elements.
NumElementsNumber of metadata elements.

Definition at line 1241 of file DebugInfo.cpp.

References llvm::MDTuple::getTemporary(), llvm::release, llvm::unwrap(), and llvm::wrap().

◆ map_from_llvmDIFlags()

static DINode::DIFlags map_from_llvmDIFlags ( LLVMDIFlags  Flags)
static

◆ map_from_llvmDWARFsourcelanguage()

static unsigned map_from_llvmDWARFsourcelanguage ( LLVMDWARFSourceLanguage  lang)
static

Definition at line 701 of file DebugInfo.cpp.

References llvm_unreachable.

Referenced by LLVMDIBuilderCreateCompileUnit().

◆ map_to_llvmDIFlags()

static LLVMDIFlags map_to_llvmDIFlags ( DINode::DIFlags  Flags)
static

Definition at line 719 of file DebugInfo.cpp.

Referenced by LLVMDITypeGetFlags().

◆ stripDebugLocFromLoopID()

static MDNode* stripDebugLocFromLoopID ( MDNode N)
static

◆ unwrapDI()

template<typename DIT >
DIT* unwrapDI ( LLVMMetadataRef  Ref)

Definition at line 711 of file DebugInfo.cpp.