Go to the source code of this file.
|
| STATISTIC (NumInstrumentedLoads, "Number of instrumented loads") |
|
| STATISTIC (NumInstrumentedStores, "Number of instrumented stores") |
|
| STATISTIC (NumFastpaths, "Number of instrumented fastpaths") |
|
| STATISTIC (NumAccessesWithIrregularSize, "Number of accesses with a size outside our targeted callout sizes") |
|
| STATISTIC (NumIgnoredStructs, "Number of ignored structs") |
|
| STATISTIC (NumIgnoredGEPs, "Number of ignored GEP instructions") |
|
| STATISTIC (NumInstrumentedGEPs, "Number of instrumented GEP instructions") |
|
| STATISTIC (NumAssumedIntraCacheLine, "Number of accesses assumed to be intra-cache-line") |
|
| INITIALIZE_PASS_BEGIN (EfficiencySanitizer, "esan", "EfficiencySanitizer: finds performance issues.", false, false) INITIALIZE_PASS_END(EfficiencySanitizer |
|
|
static cl::opt< bool > | ClToolCacheFrag ("esan-cache-frag", cl::init(false), cl::desc("Detect data cache fragmentation"), cl::Hidden) |
|
static cl::opt< bool > | ClToolWorkingSet ("esan-working-set", cl::init(false), cl::desc("Measure the working set size"), cl::Hidden) |
|
static cl::opt< bool > | ClInstrumentLoadsAndStores ("esan-instrument-loads-and-stores", cl::init(true), cl::desc("Instrument loads and stores"), cl::Hidden) |
|
static cl::opt< bool > | ClInstrumentMemIntrinsics ("esan-instrument-memintrinsics", cl::init(true), cl::desc("Instrument memintrinsics (memset/memcpy/memmove)"), cl::Hidden) |
|
static cl::opt< bool > | ClInstrumentFastpath ("esan-instrument-fastpath", cl::init(true), cl::desc("Instrument fastpath"), cl::Hidden) |
|
static cl::opt< bool > | ClAuxFieldInfo ("esan-aux-field-info", cl::init(true), cl::desc("Generate binary with auxiliary struct field information"), cl::Hidden) |
|
static cl::opt< bool > | ClAssumeIntraCacheLine ("esan-assume-intra-cache-line", cl::init(true), cl::desc("Assume each memory access touches just one cache line, for " "better performance but with a potential loss of accuracy."), cl::Hidden) |
|
static const uint64_t | EsanCtorAndDtorPriority = 0 |
|
static const char *const | EsanModuleCtorName = "esan.module_ctor" |
|
static const char *const | EsanModuleDtorName = "esan.module_dtor" |
|
static const char *const | EsanInitName = "__esan_init" |
|
static const char *const | EsanExitName = "__esan_exit" |
|
static const char *const | EsanWhichToolName = "__esan_which_tool" |
|
static const ShadowMemoryParams | ShadowParams47 |
|
static const ShadowMemoryParams | ShadowParams40 |
|
static const int | ShadowScale [] |
|
static const unsigned | MaxStructCounterNameSize = 512 |
|
| esan |
|
EfficiencySanitizer | __pad0__ |
|
EfficiencySanitizer | false |
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "esan" |
◆ INITIALIZE_PASS_BEGIN()
INITIALIZE_PASS_BEGIN |
( |
EfficiencySanitizer |
, |
|
|
"esan" |
, |
|
|
"EfficiencySanitizer: finds performance issues." |
, |
|
|
false |
, |
|
|
false |
|
|
) |
| |
◆ STATISTIC() [1/8]
STATISTIC |
( |
NumInstrumentedLoads |
, |
|
|
"Number of instrumented loads" |
|
|
) |
| |
◆ STATISTIC() [2/8]
STATISTIC |
( |
NumInstrumentedStores |
, |
|
|
"Number of instrumented stores" |
|
|
) |
| |
◆ STATISTIC() [3/8]
STATISTIC |
( |
NumFastpaths |
, |
|
|
"Number of instrumented fastpaths" |
|
|
) |
| |
◆ STATISTIC() [4/8]
STATISTIC |
( |
NumAccessesWithIrregularSize |
, |
|
|
"Number of accesses with a size outside our targeted callout sizes" |
|
|
) |
| |
◆ STATISTIC() [5/8]
STATISTIC |
( |
NumIgnoredStructs |
, |
|
|
"Number of ignored structs" |
|
|
) |
| |
◆ STATISTIC() [6/8]
◆ STATISTIC() [7/8]
STATISTIC |
( |
NumInstrumentedGEPs |
, |
|
|
"Number of instrumented GEP instructions" |
|
|
) |
| |
◆ STATISTIC() [8/8]
STATISTIC |
( |
NumAssumedIntraCacheLine |
, |
|
|
"Number of accesses assumed to be intra-cache-line" |
|
|
) |
| |
◆ __pad0__
EfficiencySanitizer __pad0__ |
◆ ClAssumeIntraCacheLine
cl::opt<bool> ClAssumeIntraCacheLine("esan-assume-intra-cache-line", cl::init(true), cl::desc("Assume each memory access touches just one cache line, for " "better performance but with a potential loss of accuracy."), cl::Hidden) |
|
static |
◆ ClAuxFieldInfo
cl::opt<bool> ClAuxFieldInfo("esan-aux-field-info", cl::init(true), cl::desc("Generate binary with auxiliary struct field information"), cl::Hidden) |
|
static |
◆ ClInstrumentFastpath
◆ ClInstrumentLoadsAndStores
◆ ClInstrumentMemIntrinsics
◆ ClToolCacheFrag
cl::opt<bool> ClToolCacheFrag("esan-cache-frag", cl::init(false), cl::desc("Detect data cache fragmentation"), cl::Hidden) |
|
static |
◆ ClToolWorkingSet
cl::opt<bool> ClToolWorkingSet("esan-working-set", cl::init(false), cl::desc("Measure the working set size"), cl::Hidden) |
|
static |
◆ esan
◆ EsanCtorAndDtorPriority
const uint64_t EsanCtorAndDtorPriority = 0 |
|
static |
◆ EsanExitName
◆ EsanInitName
◆ EsanModuleCtorName
◆ EsanModuleDtorName
◆ EsanWhichToolName
◆ false
EfficiencySanitizer false |
◆ MaxStructCounterNameSize
◆ ShadowParams40
◆ ShadowParams47
◆ ShadowScale