LLVM
10.0.0svn
|
#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>
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< bool > | ClMergeInit ("stack-tagging-merge-init", cl::Hidden, cl::init(true), cl::ZeroOrMore, cl::desc("merge stack variable initializers with tagging when possible")) |
static cl::opt< unsigned > | ClScanLimit ("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 |
#define DEBUG_TYPE "stack-tagging" |
Definition at line 57 of file AArch64StackTagging.cpp.
INITIALIZE_PASS_BEGIN | ( | AArch64StackTagging | , |
DEBUG_TYPE | , | ||
"AArch64 Stack Tagging" | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 496 of file AArch64StackTagging.cpp.
References llvm::alignTo(), assert(), llvm::IRBuilder< T, Inserter >::CreateCall(), llvm::IRBuilder< T, Inserter >::CreatePointerCast(), llvm::DominatorTree::dominates(), llvm::DominatorTreeBase< NodeT, IsPostDom >::dominates(), llvm::dyn_cast(), llvm::SmallVectorBase::empty(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::empty(), llvm::Instruction::eraseFromParent(), llvm::findAllocaForValue(), llvm::ConstantInt::get(), llvm::MetadataAsValue::get(), llvm::LocalAsMetadata::get(), llvm::CallBase::getArgOperand(), llvm::Module::getDataLayout(), llvm::Intrinsic::getDeclaration(), llvm::IRBuilderBase::GetInsertPoint(), llvm::IRBuilderBase::getInt64Ty(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), llvm::Constant::getNullValue(), llvm::Instruction::getParent(), llvm::GlobalValue::getParent(), llvm::Function::hasFnAttribute(), I, llvm::isPotentiallyReachable(), IT, llvm_unreachable, P, llvm::SmallVectorTemplateBase< T >::push_back(), runOnFunction(), llvm::Value::setName(), Size, and llvm::SmallVectorBase::size().
|
static |
|
static |
Referenced by llvm::createAArch64StackTaggingPass().
DEBUG_TYPE |
Definition at line 325 of file AArch64StackTagging.cpp.
AArch64 Stack false |
Definition at line 325 of file AArch64StackTagging.cpp.
Definition at line 66 of file AArch64StackTagging.cpp.
AArch64 Stack Tagging |
Definition at line 325 of file AArch64StackTagging.cpp.