LLVM 17.0.0git
|
#include "AArch64.h"
#include "AArch64InstrInfo.h"
#include "AArch64Subtarget.h"
#include "AArch64TargetMachine.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/CFG.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/PostDominators.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/Analysis/StackSafetyAnalysis.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/CodeGen/LiveRegUnits.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/IntrinsicsAArch64.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/ValueHandle.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Transforms/Utils/MemoryTaggingSupport.h"
#include <cassert>
#include <iterator>
#include <memory>
#include <utility>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "aarch64-stack-tagging" |
Functions | |
INITIALIZE_PASS_BEGIN (AArch64StackTagging, DEBUG_TYPE, "AArch64 Stack Tagging", false, false) INITIALIZE_PASS_END(AArch64StackTagging | |
Variables | |
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 const Align | kTagGranuleSize = Align(16) |
DEBUG_TYPE | |
AArch64 Stack | Tagging |
AArch64 Stack | false |
#define DEBUG_TYPE "aarch64-stack-tagging" |
Definition at line 64 of file AArch64StackTagging.cpp.
INITIALIZE_PASS_BEGIN | ( | AArch64StackTagging | , |
DEBUG_TYPE | , | ||
"AArch64 Stack Tagging" | , | ||
false | , | ||
false | |||
) |
|
static |
|
static |
|
static |
|
static |
|
static |
Referenced by llvm::AddressSanitizerPass::run().
DEBUG_TYPE |
Definition at line 345 of file AArch64StackTagging.cpp.
AArch64 Stack false |
Definition at line 346 of file AArch64StackTagging.cpp.
Definition at line 88 of file AArch64StackTagging.cpp.
AArch64 Stack Tagging |
Definition at line 345 of file AArch64StackTagging.cpp.