LLVM 20.0.0git
|
Classes | |
struct | AllocaInfo |
struct | StackInfo |
class | StackInfoBuilder |
void llvm::memtag::alignAndPadAlloca | ( | memtag::AllocaInfo & | Info, |
llvm::Align | Align | ||
) |
Definition at line 206 of file MemoryTaggingSupport.cpp.
References llvm::alignTo(), llvm::StructType::get(), llvm::ArrayType::get(), getAllocaSizeInBytes(), llvm::Type::getInt8Ty(), Info, and Size.
void llvm::memtag::annotateDebugRecords | ( | AllocaInfo & | Info, |
unsigned int | Tag | ||
) |
Definition at line 297 of file MemoryTaggingSupport.cpp.
References llvm::DIExpression::appendOpsToArg(), llvm::dwarf::DW_OP_LLVM_tag_offset, DynCastToDbgAssign(), llvm::for_each(), Info, and llvm::DIExpression::prependOpcodes().
|
static |
Definition at line 289 of file MemoryTaggingSupport.cpp.
Referenced by annotateDebugRecords().
|
static |
Definition at line 293 of file MemoryTaggingSupport.cpp.
References llvm::DbgVariableRecord::isDbgAssign().
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 48 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 201 of file MemoryTaggingSupport.cpp.
References DL, llvm::AllocaInst::getAllocationSize(), and llvm::Instruction::getDataLayout().
Referenced by alignAndPadAlloca(), and llvm::memtag::StackInfoBuilder::isInterestingAlloca().
Definition at line 279 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 267 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 259 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 102 of file MemoryTaggingSupport.cpp.
References llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent().
Referenced by llvm::memtag::StackInfoBuilder::visit().
Definition at line 244 of file MemoryTaggingSupport.cpp.
References II.
bool llvm::memtag::isStandardLifetime | ( | const SmallVectorImpl< IntrinsicInst * > & | LifetimeStart, |
const SmallVectorImpl< IntrinsicInst * > & | LifetimeEnd, | ||
const DominatorTree * | DT, | ||
const LoopInfo * | LI, | ||
size_t | MaxLifetimes | ||
) |
Definition at line 89 of file MemoryTaggingSupport.cpp.
References llvm::SmallVectorBase< Size_T >::size().
Definition at line 249 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().