LLVM  14.0.0git
Classes | Namespaces | Macros | Functions | Variables
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/PointerUnion.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/Constants.h"
#include "llvm/IR/Metadata.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Discriminator.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::DITypeRefArray
 
class  llvm::DITypeRefArray::iterator
 
class  llvm::DINode
 Tagged DWARF-like metadata node. More...
 
class  llvm::GenericDINode
 Generic tagged DWARF-like metadata node. More...
 
class  llvm::DISubrange
 Array subrange. More...
 
class  llvm::DIGenericSubrange
 
class  llvm::DIEnumerator
 Enumeration value. More...
 
class  llvm::DIScope
 Base class for scope-like contexts. More...
 
class  llvm::DIFile
 File. More...
 
struct  llvm::DIFile::ChecksumInfo< T >
 A single checksum, represented by a Kind and a Value (a string). More...
 
class  llvm::DIType
 Base class for types. More...
 
class  llvm::DIBasicType
 Basic type, like 'int' or 'float'. More...
 
class  llvm::DIStringType
 String type, Fortran CHARACTER(n) 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
 Represents a module in the programming language, for example, a Clang module, or a Fortran module. 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...
 
struct  llvm::DenseMapInfo< DIExpression::FragmentInfo >
 
class  llvm::DIGlobalVariable
 Global variables. More...
 
class  llvm::DICommonBlock
 
class  llvm::DILocalVariable
 Local variable. More...
 
class  llvm::DILabel
 Label. 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
 
class  llvm::DIArgList
 List of ValueAsMetadata, to be used as an argument to a dbg.value intrinsic. More...
 
class  llvm::DebugVariable
 Identifies a unique instance of a variable. More...
 
struct  llvm::DenseMapInfo< DebugVariable >
 

Namespaces

 llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

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
 
#define HANDLE_DISP_FLAG(ID, NAME)   SPFlag##NAME = ID,
 
#define DISP_FLAG_LARGEST_NEEDED
 

Functions

bool llvm::operator== (const DIExpression::FragmentInfo &A, const DIExpression::FragmentInfo &B)
 
bool llvm::operator< (const DIExpression::FragmentInfo &A, const DIExpression::FragmentInfo &B)
 

Variables

cl::opt< bool > llvm::EnableFSDiscriminator
 

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)

Definition at line 52 of file DebugInfoMetadata.h.

◆ 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)); \
}

Definition at line 42 of file DebugInfoMetadata.h.

◆ DEFINE_MDNODE_GET_UNPACK

#define DEFINE_MDNODE_GET_UNPACK (   ARGS)    DEFINE_MDNODE_GET_UNPACK_IMPL ARGS

Definition at line 41 of file DebugInfoMetadata.h.

◆ DEFINE_MDNODE_GET_UNPACK_IMPL

#define DEFINE_MDNODE_GET_UNPACK_IMPL (   ...)    __VA_ARGS__

Definition at line 40 of file DebugInfoMetadata.h.

◆ DI_FLAG_LARGEST_NEEDED

#define DI_FLAG_LARGEST_NEEDED

Definition at line 168 of file DebugInfoMetadata.h.

◆ DISP_FLAG_LARGEST_NEEDED

#define DISP_FLAG_LARGEST_NEEDED

Definition at line 1843 of file DebugInfoMetadata.h.

◆ HANDLE_DI_FLAG

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

Definition at line 167 of file DebugInfoMetadata.h.

◆ HANDLE_DISP_FLAG

#define HANDLE_DISP_FLAG (   ID,
  NAME 
)    SPFlag##NAME = ID,

Definition at line 1842 of file DebugInfoMetadata.h.

getImpl
static LazyValueInfoImpl & getImpl(void *&PImpl, AssumptionCache *AC, const Module *M)
This lazily constructs the LazyValueInfoImpl.
Definition: LazyValueInfo.cpp:1517
DEFINE_MDNODE_GET_UNPACK
#define DEFINE_MDNODE_GET_UNPACK(ARGS)
Definition: DebugInfoMetadata.h:41
Context
ManagedStatic< detail::RecordContext > Context
Definition: Record.cpp:96