LLVM 19.0.0git
Namespaces | Functions
MemoryTaggingSupport.cpp File Reference
#include "llvm/Transforms/Utils/MemoryTaggingSupport.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Analysis/CFG.h"
#include "llvm/Analysis/PostDominators.h"
#include "llvm/Analysis/StackSafetyAnalysis.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/TargetParser/Triple.h"
#include "llvm/Transforms/Utils/PromoteMemToReg.h"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::memtag
 

Functions

bool llvm::memtag::forAllReachableExits (const DominatorTree &DT, const PostDominatorTree &PDT, const LoopInfo &LI, const Instruction *Start, const SmallVectorImpl< IntrinsicInst * > &Ends, const SmallVectorImpl< Instruction * > &RetVec, llvm::function_ref< void(Instruction *)> Callback)
 
bool llvm::memtag::isStandardLifetime (const SmallVectorImpl< IntrinsicInst * > &LifetimeStart, const SmallVectorImpl< IntrinsicInst * > &LifetimeEnd, const DominatorTree *DT, const LoopInfo *LI, size_t MaxLifetimes)
 
Instruction * llvm::memtag::getUntagLocationIfFunctionExit (Instruction &Inst)
 
uint64_t llvm::memtag::getAllocaSizeInBytes (const AllocaInst &AI)
 
void llvm::memtag::alignAndPadAlloca (memtag::AllocaInfo &Info, llvm::Align Align)
 
bool llvm::memtag::isLifetimeIntrinsic (Value *V)
 
Value * llvm::memtag::readRegister (IRBuilder<> &IRB, StringRef Name)
 
Value * llvm::memtag::getPC (const Triple &TargetTriple, IRBuilder<> &IRB)
 
Value * llvm::memtag::getFP (IRBuilder<> &IRB)
 
Value * llvm::memtag::getAndroidSlotPtr (IRBuilder<> &IRB, int Slot)