Go to the source code of this file.
|
static cl::opt< bool > | ClMergeInit ("stack-tagging-merge-init", cl::Hidden, cl::init(true), cl::desc("merge stack variable initializers with tagging when possible")) |
|
static cl::opt< bool > | ClUseStackSafety ("stack-tagging-use-stack-safety", cl::Hidden, cl::init(true), cl::desc("Use Stack Safety analysis results")) |
|
static cl::opt< unsigned > | ClScanLimit ("stack-tagging-merge-init-scan-limit", cl::init(40), cl::Hidden) |
|
static cl::opt< unsigned > | ClMergeInitSizeLimit ("stack-tagging-merge-init-size-limit", cl::init(272), cl::Hidden) |
|
static cl::opt< size_t > | ClMaxLifetimes ("stack-tagging-max-lifetimes-for-alloca", cl::Hidden, cl::init(3), cl::ReallyHidden, cl::desc("How many lifetime ends to handle for a single alloca."), cl::Optional) |
|
static cl::opt< StackTaggingRecordStackHistoryMode > | ClRecordStackHistory ("stack-tagging-record-stack-history", cl::desc("Record stack frames with tagged allocations in a thread-local " "ring buffer"), cl::values(clEnumVal(none, "Do not record stack ring history"), clEnumVal(instr, "Insert instructions into the prologue for " "storing into the stack ring buffer")), cl::Hidden, cl::init(none)) |
|
static const Align | kTagGranuleSize = Align(16) |
|
| DEBUG_TYPE |
|
AArch64 Stack | Tagging |
|
AArch64 Stack | false |
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "aarch64-stack-tagging" |
◆ StackTaggingRecordStackHistoryMode
◆ INITIALIZE_PASS_BEGIN()
INITIALIZE_PASS_BEGIN |
( |
AArch64StackTagging |
, |
|
|
DEBUG_TYPE |
, |
|
|
"AArch64 Stack Tagging" |
, |
|
|
false |
, |
|
|
false |
|
|
) |
| |
◆ ClMaxLifetimes
cl::opt< size_t > ClMaxLifetimes("stack-tagging-max-lifetimes-for-alloca", cl::Hidden, cl::init(3), cl::ReallyHidden, cl::desc("How many lifetime ends to handle for a single alloca."), cl::Optional) |
( |
"stack-tagging-max-lifetimes-for-alloca" |
, |
|
|
cl::Hidden |
, |
|
|
cl::init(3) |
, |
|
|
cl::ReallyHidden |
, |
|
|
cl::desc("How many lifetime ends to handle for a single alloca.") |
, |
|
|
cl::Optional |
|
|
) |
| |
|
static |
◆ ClMergeInit
cl::opt< bool > ClMergeInit("stack-tagging-merge-init", cl::Hidden, cl::init(true), cl::desc("merge stack variable initializers with tagging when possible")) |
( |
"stack-tagging-merge-init" |
, |
|
|
cl::Hidden |
, |
|
|
cl::init(true) |
, |
|
|
cl::desc("merge stack variable initializers with tagging when possible") |
|
|
) |
| |
|
static |
◆ ClMergeInitSizeLimit
cl::opt< unsigned > ClMergeInitSizeLimit("stack-tagging-merge-init-size-limit", cl::init(272), cl::Hidden) |
( |
"stack-tagging-merge-init-size-limit" |
, |
|
|
cl::init(272) |
, |
|
|
cl::Hidden |
|
|
) |
| |
|
static |
◆ ClRecordStackHistory
cl::opt< StackTaggingRecordStackHistoryMode > ClRecordStackHistory("stack-tagging-record-stack-history", cl::desc("Record stack frames with tagged allocations in a thread-local " "ring buffer"), cl::values(clEnumVal(none, "Do not record stack ring history"), clEnumVal(instr, "Insert instructions into the prologue for " "storing into the stack ring buffer")), cl::Hidden, cl::init(none)) |
( |
"stack-tagging-record-stack-history" |
, |
|
|
cl::desc("Record stack frames with tagged allocations in a thread-local " "ring buffer") |
, |
|
|
cl::values(clEnumVal(none, "Do not record stack ring history"), clEnumVal(instr, "Insert instructions into the prologue for " "storing into the stack ring buffer")) |
, |
|
|
cl::Hidden |
, |
|
|
cl::init(none) |
|
|
) |
| |
|
static |
◆ ClScanLimit
cl::opt< unsigned > ClScanLimit("stack-tagging-merge-init-scan-limit", cl::init(40), cl::Hidden) |
( |
"stack-tagging-merge-init-scan-limit" |
, |
|
|
cl::init(40) |
, |
|
|
cl::Hidden |
|
|
) |
| |
|
static |
◆ ClUseStackSafety
◆ DEBUG_TYPE
◆ false
◆ kTagGranuleSize
◆ Tagging