LLVM  10.0.0svn
Macros | Functions | Variables
AArch64StackTagging.cpp File Reference
#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/None.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/CFG.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.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/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Metadata.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 <cassert>
#include <iterator>
#include <utility>
Include dependency graph for AArch64StackTagging.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "stack-tagging"
 

Functions

 INITIALIZE_PASS_BEGIN (AArch64StackTagging, DEBUG_TYPE, "AArch64 Stack Tagging", false, false) INITIALIZE_PASS_END(AArch64StackTagging
 
static bool postDominates (const PostDominatorTree *PDT, const IntrinsicInst *A, const IntrinsicInst *B)
 

Variables

static cl::opt< boolClMergeInit ("stack-tagging-merge-init", cl::Hidden, cl::init(true), cl::ZeroOrMore, cl::desc("merge stack variable initializers with tagging when possible"))
 
static cl::opt< unsignedClScanLimit ("stack-tagging-merge-init-scan-limit", cl::init(40), cl::Hidden)
 
static const Align kTagGranuleSize = Align(16)
 
 DEBUG_TYPE
 
AArch64 Stack Tagging
 
AArch64 Stack false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "stack-tagging"

Definition at line 57 of file AArch64StackTagging.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( AArch64StackTagging  ,
DEBUG_TYPE  ,
"AArch64 Stack Tagging ,
false  ,
false   
)

◆ postDominates()

static bool postDominates ( const PostDominatorTree PDT,
const IntrinsicInst A,
const IntrinsicInst B 
)
static

Variable Documentation

◆ ClMergeInit

cl::opt<bool> ClMergeInit("stack-tagging-merge-init", cl::Hidden, cl::init(true), cl::ZeroOrMore, cl::desc("merge stack variable initializers with tagging when possible"))
static

◆ ClScanLimit

cl::opt<unsigned> ClScanLimit("stack-tagging-merge-init-scan-limit", cl::init(40), cl::Hidden)
static

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 325 of file AArch64StackTagging.cpp.

◆ false

AArch64 Stack false

Definition at line 325 of file AArch64StackTagging.cpp.

◆ kTagGranuleSize

const Align kTagGranuleSize = Align(16)
static

Definition at line 66 of file AArch64StackTagging.cpp.

◆ Tagging

AArch64 Stack Tagging

Definition at line 325 of file AArch64StackTagging.cpp.