LLVM 22.0.0git
CtxInstrContextNode.h File Reference
#include <stdint.h>
#include <stdlib.h>

Go to the source code of this file.

Classes

class  llvm::ctx_profile::ContextNode
class  llvm::ctx_profile::ProfileWriter
 Abstraction for the parameter passed to __llvm_ctx_profile_fetch. More...

Namespaces

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

Macros

#define CTXPROF_FUNCTION_DATA(PTRDECL, CONTEXT_PTR, VOLATILE_PTRDECL, MUTEXDECL)
 The internal structure of FunctionData.

Typedefs

using llvm::ctx_profile::GUID = uint64_t

Macro Definition Documentation

◆ CTXPROF_FUNCTION_DATA

#define CTXPROF_FUNCTION_DATA ( PTRDECL,
CONTEXT_PTR,
VOLATILE_PTRDECL,
MUTEXDECL )
Value:
PTRDECL(FunctionData, Next) \
VOLATILE_PTRDECL(void, EntryAddress) \
CONTEXT_PTR \
VOLATILE_PTRDECL(ContextNode, FlatCtx) \
MUTEXDECL(Mutex)

The internal structure of FunctionData.

This makes sure that changes to the fields of FunctionData either get automatically captured on the llvm side, or force a manual corresponding update.

The macro arguments (see CtxInstrProfiling.h for example):

PTRDECL is a macro taking 2 parameters: a type and the name of the field. The field is a pointer of that type;

VOLATILE_PTRDECL is the same as above, but for volatile pointers;

MUTEXDECL takes one parameter, the name of a field that is a mutex.

Definition at line 128 of file CtxInstrContextNode.h.