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