LLVM 17.0.0git
|
Classes | |
struct | AllocaInfo |
struct | StackInfo |
class | StackInfoBuilder |
Functions | |
bool | 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 | isStandardLifetime (const SmallVectorImpl< IntrinsicInst * > &LifetimeStart, const SmallVectorImpl< IntrinsicInst * > &LifetimeEnd, const DominatorTree *DT, const LoopInfo *LI, size_t MaxLifetimes) |
Instruction * | getUntagLocationIfFunctionExit (Instruction &Inst) |
uint64_t | getAllocaSizeInBytes (const AllocaInst &AI) |
void | alignAndPadAlloca (memtag::AllocaInfo &Info, llvm::Align Align) |
void llvm::memtag::alignAndPadAlloca | ( | memtag::AllocaInfo & | Info, |
llvm::Align | Align | ||
) |
Definition at line 180 of file MemoryTaggingSupport.cpp.
References llvm::alignTo(), llvm::StructType::get(), llvm::ArrayType::get(), getAllocaSizeInBytes(), llvm::Type::getInt8Ty(), Info, and Size.
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 | ||
) |
Definition at line 44 of file MemoryTaggingSupport.cpp.
References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::PostDominatorTree::dominates(), End, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::isPotentiallyReachable(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorBase< Size_T >::size().
uint64_t llvm::memtag::getAllocaSizeInBytes | ( | const AllocaInst & | AI | ) |
Definition at line 175 of file MemoryTaggingSupport.cpp.
References DL, llvm::AllocaInst::getAllocationSize(), llvm::Module::getDataLayout(), and llvm::Instruction::getModule().
Referenced by alignAndPadAlloca(), and llvm::memtag::StackInfoBuilder::isInterestingAlloca().
Instruction * llvm::memtag::getUntagLocationIfFunctionExit | ( | Instruction & | Inst | ) |
Definition at line 100 of file MemoryTaggingSupport.cpp.
References llvm::Instruction::getParent(), and llvm::BasicBlock::getTerminatingMustTailCall().
Referenced by llvm::memtag::StackInfoBuilder::visit().
bool llvm::memtag::isStandardLifetime | ( | const SmallVectorImpl< IntrinsicInst * > & | LifetimeStart, |
const SmallVectorImpl< IntrinsicInst * > & | LifetimeEnd, | ||
const DominatorTree * | DT, | ||
const LoopInfo * | LI, | ||
size_t | MaxLifetimes | ||
) |
Definition at line 87 of file MemoryTaggingSupport.cpp.
References llvm::SmallVectorBase< Size_T >::size().