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 |
| |
| #define DEBUG_TYPE "esan" |
| INITIALIZE_PASS_BEGIN |
( |
EfficiencySanitizer |
, |
|
|
"esan" |
, |
|
|
"EfficiencySanitizer: finds performance issues." |
, |
|
|
false |
, |
|
|
false |
|
|
) |
| |
| 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 |
( |
NumInstrumentedGEPs |
, |
|
|
"Number of instrumented GEP instructions" |
|
|
) |
| |
| STATISTIC |
( |
NumAssumedIntraCacheLine |
, |
|
|
"Number of accesses assumed to be intra-cache-line" |
|
|
) |
| |
| EfficiencySanitizer __pad0__ |
| 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 |
| 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> ClInstrumentFastpath("esan-instrument-fastpath", cl::init(true), cl::desc("Instrument fastpath"), 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> 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 |
| 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 EsanWhichToolName = "__esan_which_tool" |
|
static |
| EfficiencySanitizer false |
Initial value:= {
0x0fffffffffull,
{
0x1300000000ull, 0x2200000000ull, 0x4400000000ull,
}}
Definition at line 113 of file EfficiencySanitizer.cpp.
Initial value:= {
0x00000fffffffffffull,
{
0x0000130000000000ull, 0x0000220000000000ull, 0x0000440000000000ull,
}}
Definition at line 107 of file EfficiencySanitizer.cpp.