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
| cl::opt< bool > ClUseStackSafety("stack-tagging-use-stack-safety", cl::Hidden, cl::init(true), cl::desc("Use Stack Safety analysis results")) |
( |
"stack-tagging-use-stack-safety" | , |
|
|
cl::Hidden | , |
|
|
cl::init(true) | , |
|
|
cl::desc("Use Stack Safety analysis results") | ) |
|
static |
◆ DEBUG_TYPE
◆ false
◆ kTagGranuleSize
◆ Tagging