LLVM: lib/IR/DebugInfoMetadata.cpp File Reference (original) (raw)

Go to the source code of this file.

Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
Macros
#define HANDLE_DI_FLAG(ID, NAME)
#define HANDLE_DI_FLAG(ID, NAME)
#define HANDLE_DI_FLAG(ID, NAME)
#define UNWRAP_ARGS_IMPL(...)
#define UNWRAP_ARGS(ARGS)
#define DEFINE_GETIMPL_LOOKUP(CLASS, ARGS)
#define DEFINE_GETIMPL_STORE(CLASS, ARGS, OPS)
#define DEFINE_GETIMPL_STORE_NO_OPS(CLASS, ARGS)
#define DEFINE_GETIMPL_STORE_NO_CONSTRUCTOR_ARGS(CLASS, OPS)
#define DEFINE_GETIMPL_STORE_N(CLASS, ARGS, OPS, NUM_OPS)
#define HANDLE_DISP_FLAG(ID, NAME)
#define HANDLE_DISP_FLAG(ID, NAME)
#define HANDLE_DISP_FLAG(ID, NAME)
Functions
cl::opt< bool > llvm::EnableFSDiscriminator ("enable-fs-discriminator", cl::Hidden, cl::desc("Enable adding flow sensitive discriminators"))
LLVM_ABI cl::opt< bool > llvm::PickMergedSourceLocations ("pick-merged-source-locations", cl::init(false), cl::Hidden, cl::desc("Preserve line and column number when merging locations."))
static void adjustColumn (unsigned &Column)
static DILexicalBlockBase * cloneAndReplaceParentScope (DILexicalBlockBase *LBB, DIScope *NewParent)
static LineColumn getLocalScopeLocationOr (DIScope *S, LineColumn Default)
Returns the location of DILocalScope, if present, or a default value.
template
static std::pair< DIScope *, LineColumn > getNearestMatchingScope (const DILocation *L1, const DILocation *L2)
static bool isCanonical (const MDString *S)
static ConstantAsMetadata * extractConstantMetadata (Metadata *ExtraData)

DEFINE_GETIMPL_LOOKUP

#define DEFINE_GETIMPL_LOOKUP ( CLASS,
ARGS )

Value:

do { \

if (Storage == Uniqued) { \

if (auto *N = getUniqued(Context.pImpl->CLASS##s, \

CLASS##Info::KeyTy(UNWRAP_ARGS(ARGS)))) \

return N; \

if (!ShouldCreate) \

return nullptr; \

} else { \

assert(ShouldCreate && \

"Expected non-uniqued nodes to always be created"); \

} \

} while (false)

static T * getUniqued(DenseSet< T *, InfoT > &Store, const typename InfoT::KeyTy &Key)

Definition at line 591 of file DebugInfoMetadata.cpp.

Referenced by llvm::DIBasicType::getImpl().

DEFINE_GETIMPL_STORE

#define DEFINE_GETIMPL_STORE ( CLASS,
ARGS,
OPS )

DEFINE_GETIMPL_STORE_N

#define DEFINE_GETIMPL_STORE_N ( CLASS,
ARGS,
OPS,
NUM_OPS )

Value:

return storeImpl(new (NUM_OPS, Storage) \

CLASS(Context, Storage, UNWRAP_ARGS(ARGS), OPS), \

Storage, Context.pImpl->CLASS##s)

Definition at line 615 of file DebugInfoMetadata.cpp.

DEFINE_GETIMPL_STORE_NO_CONSTRUCTOR_ARGS

#define DEFINE_GETIMPL_STORE_NO_CONSTRUCTOR_ARGS ( CLASS,
OPS )

Value:

return storeImpl(new (std::size(OPS), Storage) CLASS(Context, Storage, OPS), \

Storage, Context.pImpl->CLASS##s)

Definition at line 612 of file DebugInfoMetadata.cpp.

DEFINE_GETIMPL_STORE_NO_OPS

#define DEFINE_GETIMPL_STORE_NO_OPS ( CLASS,
ARGS )

Value:

return storeImpl(new (0u, Storage) \

CLASS(Context, Storage, UNWRAP_ARGS(ARGS)), \

Storage, Context.pImpl->CLASS##s)

Definition at line 608 of file DebugInfoMetadata.cpp.

HANDLE_DI_FLAG [1/3]

#define HANDLE_DI_FLAG ( ID,
NAME )

Value:

.Case("DIFlag" #NAME, Flag##NAME)

HANDLE_DI_FLAG [2/3]

#define HANDLE_DI_FLAG ( ID,
NAME )

Value:

case Flag##NAME: \

return "DIFlag" #NAME;

HANDLE_DI_FLAG [3/3]

#define HANDLE_DI_FLAG ( ID,
NAME )

Value:

if (DIFlags Bit = Flags & Flag##NAME) { \

SplitFlags.push_back(Bit); \

Flags &= ~Bit; \

}

HANDLE_DISP_FLAG [1/3]

#define HANDLE_DISP_FLAG ( ID,
NAME )

Value:

.Case("DISPFlag" #NAME, SPFlag##NAME)

HANDLE_DISP_FLAG [2/3]

#define HANDLE_DISP_FLAG ( ID,
NAME )

Value:

case SPFlag##NAME: \

return "DISPFlag" #NAME;

HANDLE_DISP_FLAG [3/3]

#define HANDLE_DISP_FLAG ( ID,
NAME )

Value:

if (DISPFlags Bit = Flags & SPFlag##NAME) { \

SplitFlags.push_back(Bit); \

Flags &= ~Bit; \

}

UNWRAP_ARGS

#define UNWRAP_ARGS ( ARGS )

UNWRAP_ARGS_IMPL

#define UNWRAP_ARGS_IMPL ( ... )

LineColumn

adjustColumn()

void adjustColumn ( unsigned & Column) static

cloneAndReplaceParentScope()

extractConstantMetadata()

getLocalScopeLocationOr()

LineColumn getLocalScopeLocationOr ( DIScope * S, LineColumn Default ) static

getNearestMatchingScope()

template

isCanonical()

ChecksumKindName

const char* ChecksumKindName[DIFile::CSK_Last] static