LLVM  6.0.0svn
Classes | Namespaces | Macros | Typedefs
DebugInfoMetadata.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/IR/Metadata.h"
#include "llvm/Support/Casting.h"
#include <cassert>
#include <climits>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <type_traits>
#include <vector>
#include "llvm/IR/DebugInfoFlags.def"
Include dependency graph for DebugInfoMetadata.h:

Go to the source code of this file.

Classes

class  llvm::TypedDINodeRef< T >
 Holds a subclass of DINode. More...
 
class  llvm::DITypeRefArray
 
class  llvm::DITypeRefArray::iterator
 
class  llvm::DINode
 Tagged DWARF-like metadata node. More...
 
struct  llvm::simplify_type< const TypedDINodeRef< T > >
 
struct  llvm::simplify_type< TypedDINodeRef< T > >
 
class  llvm::GenericDINode
 Generic tagged DWARF-like metadata node. More...
 
class  llvm::DISubrange
 Array subrange. More...
 
class  llvm::DIEnumerator
 Enumeration value. More...
 
class  llvm::DIScope
 Base class for scope-like contexts. More...
 
class  llvm::DIFile
 File. More...
 
class  llvm::DIType
 Base class for types. More...
 
class  llvm::DIBasicType
 Basic type, like 'int' or 'float'. More...
 
class  llvm::DIDerivedType
 Derived types. More...
 
class  llvm::DICompositeType
 Composite types. More...
 
class  llvm::DISubroutineType
 Type array for a subprogram. More...
 
class  llvm::DICompileUnit
 Compile unit. More...
 
class  llvm::DILocalScope
 A scope for locals. More...
 
class  llvm::DILocation
 Debug location. More...
 
class  llvm::DISubprogram
 Subprogram description. More...
 
class  llvm::DILexicalBlockBase
 
class  llvm::DILexicalBlock
 
class  llvm::DILexicalBlockFile
 
class  llvm::DINamespace
 
class  llvm::DIModule
 A (clang) module that has been imported by the compile unit. More...
 
class  llvm::DITemplateParameter
 Base class for template parameters. More...
 
class  llvm::DITemplateTypeParameter
 
class  llvm::DITemplateValueParameter
 
class  llvm::DIVariable
 Base class for variables. More...
 
class  llvm::DIExpression
 DWARF expression. More...
 
class  llvm::DIExpression::ExprOperand
 A lightweight wrapper around an expression operand. More...
 
class  llvm::DIExpression::expr_op_iterator
 An iterator for expression operands. More...
 
struct  llvm::DIExpression::FragmentInfo
 Holds the characteristics of one fragment of a larger variable. More...
 
class  llvm::DIGlobalVariable
 Global variables. More...
 
class  llvm::DILocalVariable
 Local variable. More...
 
class  llvm::DIObjCProperty
 
class  llvm::DIImportedEntity
 An imported module (C++ using directive or similar). More...
 
class  llvm::DIGlobalVariableExpression
 A pair of DIGlobalVariable and DIExpression. More...
 
class  llvm::DIMacroNode
 Macro Info DWARF-like metadata node. More...
 
class  llvm::DIMacro
 
class  llvm::DIMacroFile
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define DEFINE_MDNODE_GET_UNPACK_IMPL(...)   __VA_ARGS__
 
#define DEFINE_MDNODE_GET_UNPACK(ARGS)   DEFINE_MDNODE_GET_UNPACK_IMPL ARGS
 
#define DEFINE_MDNODE_GET_DISTINCT_TEMPORARY(CLASS, FORMAL, ARGS)
 
#define DEFINE_MDNODE_GET(CLASS, FORMAL, ARGS)
 
#define HANDLE_DI_FLAG(ID, NAME)   Flag##NAME = ID,
 
#define DI_FLAG_LARGEST_NEEDED
 

Typedefs

using llvm::DINodeRef = TypedDINodeRef< DINode >
 
using llvm::DIScopeRef = TypedDINodeRef< DIScope >
 
using llvm::DITypeRef = TypedDINodeRef< DIType >
 

Macro Definition Documentation

◆ DEFINE_MDNODE_GET

#define DEFINE_MDNODE_GET (   CLASS,
  FORMAL,
  ARGS 
)
Value:
static CLASS *get(LLVMContext &Context, DEFINE_MDNODE_GET_UNPACK(FORMAL)) { \
return getImpl(Context, DEFINE_MDNODE_GET_UNPACK(ARGS), Uniqued); \
} \
static CLASS *getIfExists(LLVMContext &Context, \
return getImpl(Context, DEFINE_MDNODE_GET_UNPACK(ARGS), Uniqued, \
/* ShouldCreate */ false); \
} \
DEFINE_MDNODE_GET_DISTINCT_TEMPORARY(CLASS, FORMAL, ARGS)
LLVMContext & Context
#define DEFINE_MDNODE_GET_UNPACK(ARGS)
static LazyValueInfoImpl & getImpl(void *&PImpl, AssumptionCache *AC, const DataLayout *DL, DominatorTree *DT=nullptr)
This lazily constructs the LazyValueInfoImpl.

Definition at line 49 of file DebugInfoMetadata.h.

Referenced by llvm::GenericDINode::getHash().

◆ DEFINE_MDNODE_GET_DISTINCT_TEMPORARY

#define DEFINE_MDNODE_GET_DISTINCT_TEMPORARY (   CLASS,
  FORMAL,
  ARGS 
)
Value:
static CLASS *getDistinct(LLVMContext &Context, \
return getImpl(Context, DEFINE_MDNODE_GET_UNPACK(ARGS), Distinct); \
} \
static Temp##CLASS getTemporary(LLVMContext &Context, \
return Temp##CLASS( \
getImpl(Context, DEFINE_MDNODE_GET_UNPACK(ARGS), Temporary)); \
}
LLVMContext & Context
#define DEFINE_MDNODE_GET_UNPACK(ARGS)
static LazyValueInfoImpl & getImpl(void *&PImpl, AssumptionCache *AC, const DataLayout *DL, DominatorTree *DT=nullptr)
This lazily constructs the LazyValueInfoImpl.

Definition at line 39 of file DebugInfoMetadata.h.

◆ DEFINE_MDNODE_GET_UNPACK

#define DEFINE_MDNODE_GET_UNPACK (   ARGS)    DEFINE_MDNODE_GET_UNPACK_IMPL ARGS

Definition at line 38 of file DebugInfoMetadata.h.

◆ DEFINE_MDNODE_GET_UNPACK_IMPL

#define DEFINE_MDNODE_GET_UNPACK_IMPL (   ...)    __VA_ARGS__

Definition at line 37 of file DebugInfoMetadata.h.

◆ DI_FLAG_LARGEST_NEEDED

#define DI_FLAG_LARGEST_NEEDED

Definition at line 194 of file DebugInfoMetadata.h.

◆ HANDLE_DI_FLAG

#define HANDLE_DI_FLAG (   ID,
  NAME 
)    Flag##NAME = ID,

Definition at line 193 of file DebugInfoMetadata.h.