Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
MemProfInstrumentation.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "memprof"

Functions

 STATISTIC (NumInstrumentedReads, "Number of instrumented reads")
 STATISTIC (NumInstrumentedWrites, "Number of instrumented writes")
 STATISTIC (NumSkippedStackReads, "Number of non-instrumented stack reads")
 STATISTIC (NumSkippedStackWrites, "Number of non-instrumented stack writes")
void createProfileFileNameVar (Module &M)
void createMemprofHistogramFlagVar (Module &M)
void createMemprofDefaultOptionsVar (Module &M)

Variables

constexpr int LLVM_MEM_PROFILER_VERSION = 1
constexpr uint64_t DefaultMemGranularity = 64
constexpr uint64_t HistogramGranularity = 8
constexpr uint64_t DefaultShadowScale = 3
constexpr char MemProfModuleCtorName [] = "memprof.module_ctor"
constexpr uint64_t MemProfCtorAndDtorPriority = 1
constexpr uint64_t MemProfEmscriptenCtorAndDtorPriority = 50
constexpr char MemProfInitName [] = "__memprof_init"
constexpr char MemProfVersionCheckNamePrefix []
constexpr char MemProfShadowMemoryDynamicAddress []
constexpr char MemProfFilenameVar [] = "__memprof_profile_filename"
constexpr char MemProfHistogramFlagVar [] = "__memprof_histogram"
static cl::opt< boolClInsertVersionCheck ("memprof-guard-against-version-mismatch", cl::desc("Guard against compiler/runtime version mismatch."), cl::Hidden, cl::init(true))
static cl::opt< boolClInstrumentReads ("memprof-instrument-reads", cl::desc("instrument read instructions"), cl::Hidden, cl::init(true))
static cl::opt< boolClInstrumentWrites ("memprof-instrument-writes", cl::desc("instrument write instructions"), cl::Hidden, cl::init(true))
static cl::opt< boolClInstrumentAtomics ("memprof-instrument-atomics", cl::desc("instrument atomic instructions (rmw, cmpxchg)"), cl::Hidden, cl::init(true))
static cl::opt< boolClUseCalls ("memprof-use-callbacks", cl::desc("Use callbacks instead of inline instrumentation sequences."), cl::Hidden, cl::init(false))
static cl::opt< std::stringClMemoryAccessCallbackPrefix ("memprof-memory-access-callback-prefix", cl::desc("Prefix for memory access callbacks"), cl::Hidden, cl::init("__memprof_"))
static cl::opt< int > ClMappingScale ("memprof-mapping-scale", cl::desc("scale of memprof shadow mapping"), cl::Hidden, cl::init(DefaultShadowScale))
static cl::opt< int > ClMappingGranularity ("memprof-mapping-granularity", cl::desc("granularity of memprof shadow mapping"), cl::Hidden, cl::init(DefaultMemGranularity))
static cl::opt< boolClStack ("memprof-instrument-stack", cl::desc("Instrument scalar stack variables"), cl::Hidden, cl::init(false))
static cl::opt< int > ClDebug ("memprof-debug", cl::desc("debug"), cl::Hidden, cl::init(0))
static cl::opt< std::stringClDebugFunc ("memprof-debug-func", cl::Hidden, cl::desc("Debug func"))
static cl::opt< int > ClDebugMin ("memprof-debug-min", cl::desc("Debug min inst"), cl::Hidden, cl::init(-1))
static cl::opt< int > ClDebugMax ("memprof-debug-max", cl::desc("Debug max inst"), cl::Hidden, cl::init(-1))
static cl::opt< boolClHistogram ("memprof-histogram", cl::desc("Collect access count histograms"), cl::Hidden, cl::init(false))
static cl::opt< std::stringMemprofRuntimeDefaultOptions ("memprof-runtime-default-options", cl::desc("The default memprof options"), cl::Hidden, cl::init(""))

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "memprof"

Definition at line 46 of file MemProfInstrumentation.cpp.

Function Documentation

◆ createMemprofDefaultOptionsVar()

◆ createMemprofHistogramFlagVar()

◆ createProfileFileNameVar()

◆ STATISTIC() [1/4]

STATISTIC ( NumInstrumentedReads ,
"Number of instrumented reads"  )

◆ STATISTIC() [2/4]

STATISTIC ( NumInstrumentedWrites ,
"Number of instrumented writes"  )

◆ STATISTIC() [3/4]

STATISTIC ( NumSkippedStackReads ,
"Number of non-instrumented stack reads"  )

◆ STATISTIC() [4/4]

STATISTIC ( NumSkippedStackWrites ,
"Number of non-instrumented stack writes"  )

Variable Documentation

◆ ClDebug

cl::opt< int > ClDebug("memprof-debug", cl::desc("debug"), cl::Hidden, cl::init(0)) ( "memprof-debug" ,
cl::desc("debug") ,
cl::Hidden ,
cl::init(0)  )
static

◆ ClDebugFunc

cl::opt< std::string > ClDebugFunc("memprof-debug-func", cl::Hidden, cl::desc("Debug func")) ( "memprof-debug-func" ,
cl::Hidden ,
cl::desc("Debug func")  )
static

◆ ClDebugMax

cl::opt< int > ClDebugMax("memprof-debug-max", cl::desc("Debug max inst"), cl::Hidden, cl::init(-1)) ( "memprof-debug-max" ,
cl::desc("Debug max inst") ,
cl::Hidden ,
cl::init(-1)  )
static

◆ ClDebugMin

cl::opt< int > ClDebugMin("memprof-debug-min", cl::desc("Debug min inst"), cl::Hidden, cl::init(-1)) ( "memprof-debug-min" ,
cl::desc("Debug min inst") ,
cl::Hidden ,
cl::init(-1)  )
static

◆ ClHistogram

cl::opt< bool > ClHistogram("memprof-histogram", cl::desc("Collect access count histograms"), cl::Hidden, cl::init(false)) ( "memprof-histogram" ,
cl::desc("Collect access count histograms") ,
cl::Hidden ,
cl::init(false)  )
static

◆ ClInsertVersionCheck

cl::opt< bool > ClInsertVersionCheck("memprof-guard-against-version-mismatch", cl::desc("Guard against compiler/runtime version mismatch."), cl::Hidden, cl::init(true)) ( "memprof-guard-against-version-mismatch" ,
cl::desc("Guard against compiler/runtime version mismatch.") ,
cl::Hidden ,
cl::init(true)  )
static

◆ ClInstrumentAtomics

cl::opt< bool > ClInstrumentAtomics("memprof-instrument-atomics", cl::desc("instrument atomic instructions (rmw, cmpxchg)"), cl::Hidden, cl::init(true)) ( "memprof-instrument-atomics" ,
cl::desc("instrument atomic instructions (rmw, cmpxchg)") ,
cl::Hidden ,
cl::init(true)  )
static

◆ ClInstrumentReads

cl::opt< bool > ClInstrumentReads("memprof-instrument-reads", cl::desc("instrument read instructions"), cl::Hidden, cl::init(true)) ( "memprof-instrument-reads" ,
cl::desc("instrument read instructions") ,
cl::Hidden ,
cl::init(true)  )
static

◆ ClInstrumentWrites

cl::opt< bool > ClInstrumentWrites("memprof-instrument-writes", cl::desc("instrument write instructions"), cl::Hidden, cl::init(true)) ( "memprof-instrument-writes" ,
cl::desc("instrument write instructions") ,
cl::Hidden ,
cl::init(true)  )
static

◆ ClMappingGranularity

cl::opt< int > ClMappingGranularity("memprof-mapping-granularity", cl::desc("granularity of memprof shadow mapping"), cl::Hidden, cl::init(DefaultMemGranularity)) ( "memprof-mapping-granularity" ,
cl::desc("granularity of memprof shadow mapping") ,
cl::Hidden ,
cl::init(DefaultMemGranularity)  )
static

◆ ClMappingScale

cl::opt< int > ClMappingScale("memprof-mapping-scale", cl::desc("scale of memprof shadow mapping"), cl::Hidden, cl::init(DefaultShadowScale)) ( "memprof-mapping-scale" ,
cl::desc("scale of memprof shadow mapping") ,
cl::Hidden ,
cl::init(DefaultShadowScale)  )
static

◆ ClMemoryAccessCallbackPrefix

cl::opt< std::string > ClMemoryAccessCallbackPrefix("memprof-memory-access-callback-prefix", cl::desc("Prefix for memory access callbacks"), cl::Hidden, cl::init("__memprof_")) ( "memprof-memory-access-callback-prefix" ,
cl::desc("Prefix for memory access callbacks") ,
cl::Hidden ,
cl::init("__memprof_")  )
static

◆ ClStack

cl::opt< bool > ClStack("memprof-instrument-stack", cl::desc("Instrument scalar stack variables"), cl::Hidden, cl::init(false)) ( "memprof-instrument-stack" ,
cl::desc("Instrument scalar stack variables") ,
cl::Hidden ,
cl::init(false)  )
static

◆ ClUseCalls

cl::opt< bool > ClUseCalls("memprof-use-callbacks", cl::desc("Use callbacks instead of inline instrumentation sequences."), cl::Hidden, cl::init(false)) ( "memprof-use-callbacks" ,
cl::desc("Use callbacks instead of inline instrumentation sequences.") ,
cl::Hidden ,
cl::init(false)  )
static

◆ DefaultMemGranularity

uint64_t DefaultMemGranularity = 64
constexpr

Definition at line 51 of file MemProfInstrumentation.cpp.

Referenced by llvm::MemProfilerPass::run().

◆ DefaultShadowScale

uint64_t DefaultShadowScale = 3
constexpr

Definition at line 57 of file MemProfInstrumentation.cpp.

◆ HistogramGranularity

uint64_t HistogramGranularity = 8
constexpr

Definition at line 54 of file MemProfInstrumentation.cpp.

Referenced by STATISTIC().

◆ LLVM_MEM_PROFILER_VERSION

int LLVM_MEM_PROFILER_VERSION = 1
constexpr

Definition at line 48 of file MemProfInstrumentation.cpp.

◆ MemProfCtorAndDtorPriority

uint64_t MemProfCtorAndDtorPriority = 1
constexpr

Definition at line 60 of file MemProfInstrumentation.cpp.

◆ MemProfEmscriptenCtorAndDtorPriority

uint64_t MemProfEmscriptenCtorAndDtorPriority = 50
constexpr

Definition at line 62 of file MemProfInstrumentation.cpp.

◆ MemProfFilenameVar

char MemProfFilenameVar[] = "__memprof_profile_filename"
constexpr

Definition at line 70 of file MemProfInstrumentation.cpp.

Referenced by createProfileFileNameVar().

◆ MemProfHistogramFlagVar

char MemProfHistogramFlagVar[] = "__memprof_histogram"
constexpr

Definition at line 72 of file MemProfInstrumentation.cpp.

Referenced by createMemprofHistogramFlagVar().

◆ MemProfInitName

char MemProfInitName[] = "__memprof_init"
constexpr

Definition at line 63 of file MemProfInstrumentation.cpp.

◆ MemProfModuleCtorName

char MemProfModuleCtorName[] = "memprof.module_ctor"
constexpr

Definition at line 59 of file MemProfInstrumentation.cpp.

◆ MemprofRuntimeDefaultOptions

cl::opt< std::string > MemprofRuntimeDefaultOptions("memprof-runtime-default-options", cl::desc("The default memprof options"), cl::Hidden, cl::init("")) ( "memprof-runtime-default-options" ,
cl::desc("The default memprof options") ,
cl::Hidden ,
cl::init("")  )
static

◆ MemProfShadowMemoryDynamicAddress

char MemProfShadowMemoryDynamicAddress[]
constexpr
Initial value:
=
"__memprof_shadow_memory_dynamic_address"

Definition at line 67 of file MemProfInstrumentation.cpp.

◆ MemProfVersionCheckNamePrefix

char MemProfVersionCheckNamePrefix[]
constexpr
Initial value:
=
"__memprof_version_mismatch_check_v"

Definition at line 64 of file MemProfInstrumentation.cpp.