Go to the source code of this file.
|
| | STATISTIC (NumInstrumentedReads, "Number of instrumented reads") |
| | STATISTIC (NumInstrumentedWrites, "Number of instrumented writes") |
| | STATISTIC (NumOmittedReadsBeforeWrite, "Number of reads ignored due to following writes") |
|
| static cl::opt< bool > | ClInstrumentMemoryAccesses ("csan-instrument-memory-accesses", cl::init(true), cl::desc("Instrument memory accesses"), cl::Hidden) |
| static cl::opt< bool > | ClInstrumentFuncEntryExit ("csan-instrument-func-entry-exit", cl::init(true), cl::desc("Instrument function entry and exit"), cl::Hidden) |
| static cl::opt< bool > | ClHandleCxxExceptions ("csan-handle-cxx-exceptions", cl::init(true), cl::desc("Handle C++ exceptions (insert cleanup blocks for unwinding)"), cl::Hidden) |
| static cl::opt< bool > | ClInstrumentAtomics ("csan-instrument-atomics", cl::init(true), cl::desc("Instrument atomics"), cl::Hidden) |
| static cl::opt< bool > | ClInstrumentMemIntrinsics ("csan-instrument-memintrinsics", cl::init(true), cl::desc("Instrument memintrinsics (memset/memcpy/memmove)"), cl::Hidden) |
| static cl::opt< bool > | ClDistinguishVolatile ("csan-distinguish-volatile", cl::init(false), cl::desc("Treat aligned volatile accesses up to 8 bytes as atomic"), cl::Hidden) |
| static constexpr char | kCsanModuleCtorName [] = "csan.module_ctor" |
| static constexpr char | kCsanInitName [] = "__csan_init" |
| static constexpr size_t | kNumAccessSizes = 5 |
| static constexpr StringLiteral | kCsanReadNames [kNumAccessSizes] |
| static constexpr StringLiteral | kCsanWriteNames [kNumAccessSizes] |
| static constexpr StringLiteral | kCsanUnalignedReadNames [kNumAccessSizes] |
| static constexpr StringLiteral | kCsanUnalignedWriteNames [kNumAccessSizes] |
| static constexpr StringLiteral | kCsanCompoundRWNames [kNumAccessSizes] |
| static constexpr StringLiteral | kCsanUnalignedCompoundRWNames [kNumAccessSizes] |
◆ DEBUG_TYPE
| #define DEBUG_TYPE "csan" |
◆ STATISTIC() [1/3]
| STATISTIC |
( |
NumInstrumentedReads | , |
|
|
"Number of instrumented reads" | ) |
◆ STATISTIC() [2/3]
| STATISTIC |
( |
NumInstrumentedWrites | , |
|
|
"Number of instrumented writes" | ) |
◆ STATISTIC() [3/3]
| STATISTIC |
( |
NumOmittedReadsBeforeWrite | , |
|
|
"Number of reads ignored due to following writes" | ) |
◆ ClDistinguishVolatile
| cl::opt< bool > ClDistinguishVolatile("csan-distinguish-volatile", cl::init(false), cl::desc("Treat aligned volatile accesses up to 8 bytes as atomic"), cl::Hidden) |
( |
"csan-distinguish-volatile" | , |
|
|
cl::init(false) | , |
|
|
cl::desc("Treat aligned volatile accesses up to 8 bytes as atomic") | , |
|
|
cl::Hidden | ) |
|
static |
◆ ClHandleCxxExceptions
◆ ClInstrumentAtomics
◆ ClInstrumentFuncEntryExit
◆ ClInstrumentMemIntrinsics
| cl::opt< bool > ClInstrumentMemIntrinsics("csan-instrument-memintrinsics", cl::init(true), cl::desc("Instrument memintrinsics (memset/memcpy/memmove)"), cl::Hidden) |
( |
"csan-instrument-memintrinsics" | , |
|
|
cl::init(true) | , |
|
|
cl::desc("Instrument memintrinsics (memset/memcpy/memmove)") | , |
|
|
cl::Hidden | ) |
|
static |
◆ ClInstrumentMemoryAccesses
| cl::opt< bool > ClInstrumentMemoryAccesses("csan-instrument-memory-accesses", cl::init(true), cl::desc("Instrument memory accesses"), cl::Hidden) |
( |
"csan-instrument-memory-accesses" | , |
|
|
cl::init(true) | , |
|
|
cl::desc("Instrument memory accesses") | , |
|
|
cl::Hidden | ) |
|
static |
◆ kCsanCompoundRWNames
Initial value:= {
"__csan_read_write1", "__csan_read_write2", "__csan_read_write4",
"__csan_read_write8", "__csan_read_write16"}
Definition at line 92 of file ConcurrencySanitizer.cpp.
◆ kCsanInitName
| char kCsanInitName[] = "__csan_init" |
|
staticconstexpr |
◆ kCsanModuleCtorName
| char kCsanModuleCtorName[] = "csan.module_ctor" |
|
staticconstexpr |
◆ kCsanReadNames
Initial value:= {
"__csan_read1", "__csan_read2", "__csan_read4", "__csan_read8",
"__csan_read16"}
Definition at line 78 of file ConcurrencySanitizer.cpp.
◆ kCsanUnalignedCompoundRWNames
Initial value:=
{"__csan_unaligned_read_write1", "__csan_unaligned_read_write2",
"__csan_unaligned_read_write4", "__csan_unaligned_read_write8",
"__csan_unaligned_read_write16"}
Definition at line 95 of file ConcurrencySanitizer.cpp.
◆ kCsanUnalignedReadNames
Initial value:= {
"__csan_unaligned_read1", "__csan_unaligned_read2",
"__csan_unaligned_read4", "__csan_unaligned_read8",
"__csan_unaligned_read16"}
Definition at line 84 of file ConcurrencySanitizer.cpp.
◆ kCsanUnalignedWriteNames
Initial value:= {
"__csan_unaligned_write1", "__csan_unaligned_write2",
"__csan_unaligned_write4", "__csan_unaligned_write8",
"__csan_unaligned_write16"}
Definition at line 88 of file ConcurrencySanitizer.cpp.
◆ kCsanWriteNames
Initial value:= {
"__csan_write1", "__csan_write2", "__csan_write4", "__csan_write8",
"__csan_write16"}
Definition at line 81 of file ConcurrencySanitizer.cpp.
◆ kNumAccessSizes