LLVM 19.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) |
bool | isLifetimeIntrinsic (Value *V) |
Value * | readRegister (IRBuilder<> &IRB, StringRef Name) |
Value * | getFP (IRBuilder<> &IRB) |
Value * | getPC (const Triple &TargetTriple, IRBuilder<> &IRB) |
Value * | getAndroidSlotPtr (IRBuilder<> &IRB, int Slot) |
void llvm::memtag::alignAndPadAlloca | ( | memtag::AllocaInfo & | Info, |
llvm::Align | Align | ||
) |
Definition at line 203 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 47 of file MemoryTaggingSupport.cpp.
References llvm::SmallPtrSetImpl< PtrType >::contains(), llvm::PostDominatorTree::dominates(), End, llvm::for_each(), 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 198 of file MemoryTaggingSupport.cpp.
References DL, llvm::AllocaInst::getAllocationSize(), llvm::Module::getDataLayout(), and llvm::Instruction::getModule().
Referenced by alignAndPadAlloca(), and llvm::memtag::StackInfoBuilder::isInterestingAlloca().
Definition at line 276 of file MemoryTaggingSupport.cpp.
References llvm::IRBuilderBase::CreateCall(), llvm::IRBuilderBase::CreateConstGEP1_32(), llvm::Intrinsic::getDeclaration(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt8Ty(), llvm::GlobalValue::getParent(), and llvm::BasicBlock::getParent().
Definition at line 264 of file MemoryTaggingSupport.cpp.
References llvm::IRBuilderBase::CreateCall(), llvm::IRBuilderBase::CreatePtrToInt(), F, llvm::Intrinsic::getDeclaration(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getIntPtrTy(), llvm::BasicBlock::getParent(), and llvm::IRBuilderBase::getPtrTy().
Definition at line 256 of file MemoryTaggingSupport.cpp.
References llvm::Triple::aarch64, llvm::IRBuilderBase::CreatePtrToInt(), llvm::Triple::getArch(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getIntPtrTy(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getParent(), and readRegister().
Instruction * llvm::memtag::getUntagLocationIfFunctionExit | ( | Instruction & | Inst | ) |
Definition at line 101 of file MemoryTaggingSupport.cpp.
References llvm::Instruction::getParent(), and llvm::BasicBlock::getTerminatingMustTailCall().
Referenced by llvm::memtag::StackInfoBuilder::visit().
Definition at line 241 of file MemoryTaggingSupport.cpp.
bool llvm::memtag::isStandardLifetime | ( | const SmallVectorImpl< IntrinsicInst * > & | LifetimeStart, |
const SmallVectorImpl< IntrinsicInst * > & | LifetimeEnd, | ||
const DominatorTree * | DT, | ||
const LoopInfo * | LI, | ||
size_t | MaxLifetimes | ||
) |
Definition at line 88 of file MemoryTaggingSupport.cpp.
References llvm::SmallVectorBase< Size_T >::size().
Definition at line 246 of file MemoryTaggingSupport.cpp.
References llvm::IRBuilderBase::CreateCall(), llvm::MDNode::get(), llvm::MetadataAsValue::get(), llvm::Intrinsic::getDeclaration(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getIntPtrTy(), llvm::GlobalValue::getParent(), and llvm::BasicBlock::getParent().
Referenced by getPC().