LLVM: lib/Target/AArch64/AArch64StackTaggingPreRA.cpp File Reference (original) (raw)
Go to the source code of this file.
Namespaces |
|
namespace |
llvm |
|
This is an optimization pass for GlobalISel generic memory operations. |
|
|
Macros |
|
#define |
DEBUG_TYPE "aarch64-stack-tagging-pre-ra" |
|
|
Variables |
|
cl::opt< UncheckedLdStMode > |
ClUncheckedLdSt ("stack-tagging-unchecked-ld-st", cl::Hidden, cl::init(UncheckedSafe), cl::desc("Unconditionally apply unchecked-ld-st optimization (even for large " "stack frames, or in the presence of variable sized allocas)."), cl::values(clEnumValN(UncheckedNever, "never", "never apply unchecked-ld-st"), clEnumValN(UncheckedSafe, "safe", "apply unchecked-ld-st when the target is definitely within range"), clEnumValN(UncheckedAlways, "always", "always apply unchecked-ld-st"))) |
|
|
static cl::opt< bool > |
ClFirstSlot ("stack-tagging-first-slot-opt", cl::Hidden, cl::init(true), cl::desc("Apply first slot optimization for stack tagging " "(eliminate ADDG Rt, Rn, 0, 0).")) |
|
|
aarch64 stack tagging pre |
ra |
|
|
aarch64 stack tagging pre AArch64 Stack Tagging PreRA |
Pass |
|
|
aarch64 stack tagging pre AArch64 Stack Tagging PreRA |
false |
|
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "aarch64-stack-tagging-pre-ra"
◆ UncheckedLdStMode
◆ INITIALIZE_PASS_BEGIN()
INITIALIZE_PASS_BEGIN |
( |
AArch64StackTaggingPreRA |
, |
"aarch64-stack-tagging-pre-ra" |
, |
|
|
"AArch64 Stack Tagging PreRA Pass" |
, |
|
|
false |
, |
|
|
false |
|
|
|
) |
|
|
|
◆ isSlotPreAllocated()
◆ isUncheckedLoadOrStoreOpcode()
static bool isUncheckedLoadOrStoreOpcode ( unsigned Opcode) |
static |
◆ ClFirstSlot
cl::opt< bool > ClFirstSlot("stack-tagging-first-slot-opt", cl::Hidden, cl::init(true), cl::desc("Apply first slot optimization for stack tagging " "(eliminate ADDG Rt, Rn, 0, 0).")) ( "stack-tagging-first-slot-opt" , cl::Hidden , cl::init(true) , cl::desc("Apply first slot optimization for stack tagging " "(eliminate ADDG Rt, Rn, 0, 0).") ) |
static |
◆ ClUncheckedLdSt
cl::opt< UncheckedLdStMode > ClUncheckedLdSt("stack-tagging-unchecked-ld-st", cl::Hidden, cl::init(UncheckedSafe), cl::desc( "Unconditionally apply unchecked-ld-st optimization (even for large " "stack frames, or in the presence of variable sized allocas)."), cl::values( clEnumValN(UncheckedNever, "never", "never apply unchecked-ld-st"), clEnumValN( UncheckedSafe, "safe", "apply unchecked-ld-st when the target is definitely within range"), clEnumValN(UncheckedAlways, "always", "always apply unchecked-ld-st"))) |
( |
"stack-tagging-unchecked-ld-st" |
, |
cl::Hidden |
, |
|
|
cl::init(UncheckedSafe) |
, |
|
|
cl::desc( "Unconditionally apply unchecked-ld-st optimization (even for large " "stack frames, or in the presence of variable sized allocas).") |
, |
|
|
cl::values( clEnumValN(UncheckedNever, "never", "never apply unchecked-ld-st"), clEnumValN( UncheckedSafe, "safe", "apply unchecked-ld-st when the target is definitely within range"), clEnumValN(UncheckedAlways, "always", "always apply unchecked-ld-st")) |
|
|
|
) |
|
|
|
◆ false
aarch64 stack tagging pre AArch64 Stack Tagging PreRA false
◆ Pass
aarch64 stack tagging pre AArch64 Stack Tagging PreRA Pass
◆ ra
aarch64 stack tagging pre ra