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"
Functions
INITIALIZE_PASS_BEGIN (AArch64StackTaggingPreRA, "aarch64-stack-tagging-pre-ra", "AArch64 Stack Tagging PreRA Pass", false, false) INITIALIZE_PASS_END(AArch64StackTaggingPreRA
static bool isUncheckedLoadOrStoreOpcode (unsigned Opcode)
static bool isSlotPreAllocated (MachineFrameInfo *MFI, int FI)
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