LLVM
17.0.0git
|
#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"
Go to the source code of this file.
Classes | |
struct | llvm::DenseMapInfo< SlotWithTag > |
Namespaces | |
llvm | |
This is an optimization pass for GlobalISel generic memory operations. | |
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< 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 |
Definition at line 34 of file AArch64StackTaggingPreRA.cpp.
enum UncheckedLdStMode |
Enumerator | |
---|---|
UncheckedNever | |
UncheckedSafe | |
UncheckedAlways |
Definition at line 36 of file AArch64StackTaggingPreRA.cpp.
INITIALIZE_PASS_BEGIN | ( | AArch64StackTaggingPreRA | , |
"aarch64-stack-tagging-pre-ra" | , | ||
"AArch64 Stack Tagging PreRA Pass" | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 229 of file AArch64StackTaggingPreRA.cpp.
References llvm::MachineFrameInfo::getUseLocalStackAllocationBlock(), and llvm::MachineFrameInfo::isObjectPreAllocated().
|
static |
Definition at line 102 of file AArch64StackTaggingPreRA.cpp.
|
static |
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"))) |
Definition at line 96 of file AArch64StackTaggingPreRA.cpp.
Definition at line 96 of file AArch64StackTaggingPreRA.cpp.
aarch64 stack tagging pre ra |
Definition at line 95 of file AArch64StackTaggingPreRA.cpp.