LLVM  14.0.0git
Classes | Namespaces | Macros | Enumerations | Functions | Variables
AArch64StackTaggingPreRA.cpp File Reference
#include "AArch64.h"
#include "AArch64MachineFunctionInfo.h"
#include "AArch64InstrInfo.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineBranchProbabilityInfo.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/MachineTraceMetrics.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for AArch64StackTaggingPreRA.cpp:

Go to the source code of this file.

Classes

struct  llvm::DenseMapInfo< SlotWithTag >
 

Namespaces

 llvm
 ---------------------— PointerInfo ------------------------------------—
 

Macros

#define DEBUG_TYPE   "aarch64-stack-tagging-pre-ra"
 

Enumerations

enum  UncheckedLdStMode { UncheckedNever, UncheckedSafe, UncheckedAlways }
 

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< UncheckedLdStModeClUncheckedLdSt ("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::ZeroOrMore, 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
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aarch64-stack-tagging-pre-ra"

Definition at line 34 of file AArch64StackTaggingPreRA.cpp.

Enumeration Type Documentation

◆ UncheckedLdStMode

Enumerator
UncheckedNever 
UncheckedSafe 
UncheckedAlways 

Definition at line 36 of file AArch64StackTaggingPreRA.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( AArch64StackTaggingPreRA  ,
"aarch64-stack-tagging-pre-ra ,
"AArch64 Stack Tagging PreRA Pass ,
false  ,
false   
)

◆ isSlotPreAllocated()

static bool isSlotPreAllocated ( MachineFrameInfo MFI,
int  FI 
)
static

◆ isUncheckedLoadOrStoreOpcode()

static bool isUncheckedLoadOrStoreOpcode ( unsigned  Opcode)
static

Definition at line 103 of file AArch64StackTaggingPreRA.cpp.

Variable Documentation

◆ ClFirstSlot

cl::opt<bool> ClFirstSlot("stack-tagging-first-slot-opt", cl::Hidden, cl::init(true), cl::ZeroOrMore, 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")))

◆ false

aarch64 stack tagging pre AArch64 Stack Tagging PreRA false

Definition at line 97 of file AArch64StackTaggingPreRA.cpp.

◆ Pass

aarch64 stack tagging pre AArch64 Stack Tagging PreRA Pass

Definition at line 97 of file AArch64StackTaggingPreRA.cpp.

◆ ra

aarch64 stack tagging pre ra

Definition at line 96 of file AArch64StackTaggingPreRA.cpp.