|
LLVM 23.0.0git
|
Classes | |
| struct | AllocaInfo |
| struct | StackInfo |
| class | StackInfoBuilder |
Enumerations | |
| enum class | AllocaInterestingness { kUninteresting , kSafe , kInteresting } |
|
strong |
| Enumerator | |
|---|---|
| kUninteresting | |
| kSafe | |
| kInteresting | |
Definition at line 65 of file MemoryTaggingSupport.h.
| void llvm::memtag::alignAndPadAlloca | ( | memtag::AllocaInfo & | Info, |
| llvm::Align | Align ) |
Definition at line 207 of file MemoryTaggingSupport.cpp.
References llvm::alignTo(), llvm::cast(), llvm::ArrayType::get(), llvm::StructType::get(), getAllocaSizeInBytes(), llvm::Type::getInt8Ty(), and Size.
| void llvm::memtag::annotateDebugRecords | ( | AllocaInfo & | Info, |
| unsigned int | Tag ) |
Definition at line 300 of file MemoryTaggingSupport.cpp.
References llvm::DIExpression::appendOpsToArg(), llvm::dwarf::DW_OP_LLVM_tag_offset, DynCastToDbgAssign(), llvm::for_each(), llvm::DIExpression::prependOpcodes(), and llvm::Tag.
|
static |
Definition at line 296 of file MemoryTaggingSupport.cpp.
References llvm::DbgVariableRecord::isDbgAssign().
Referenced by annotateDebugRecords().
| bool llvm::memtag::forAllReachableExits | ( | const DominatorTree & | DT, |
| const PostDominatorTree & | PDT, | ||
| const LoopInfo & | LI, | ||
| const AllocaInfo & | AInfo, | ||
| 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(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::for_each(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::isPotentiallyReachableFromMany(), llvm::memtag::AllocaInfo::LastBBLifetime, llvm::memtag::AllocaInfo::LifetimeEnd, llvm::memtag::AllocaInfo::LifetimeStart, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
| uint64_t llvm::memtag::getAllocaSizeInBytes | ( | const AllocaInst & | AI | ) |
Definition at line 202 of file MemoryTaggingSupport.cpp.
References DL, llvm::AllocaInst::getAllocationSize(), and llvm::Instruction::getDataLayout().
Referenced by alignAndPadAlloca().
Definition at line 285 of file MemoryTaggingSupport.cpp.
References llvm::IRBuilderBase::CreateCall(), llvm::IRBuilderBase::CreateConstGEP1_32(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt8Ty(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), and llvm::IRBuilderBase::getPtrTy().
Referenced by getSlotPtr().
Definition at line 266 of file MemoryTaggingSupport.cpp.
References llvm::IRBuilderBase::CreateConstGEP1_32(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateIntToPtr(), llvm::MDNode::get(), llvm::MetadataAsValue::get(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt8Ty(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), and llvm::IRBuilderBase::getPtrTy().
Referenced by getSlotPtr().
Definition at line 248 of file MemoryTaggingSupport.cpp.
References llvm::Triple::aarch64, llvm::IRBuilderBase::CreatePtrToInt(), llvm::Triple::getArch(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getIntPtrTy(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), and readRegister().
| Instruction * llvm::memtag::getUntagLocationIfFunctionExit | ( | Instruction & | Inst | ) |
Definition at line 101 of file MemoryTaggingSupport.cpp.
References llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), and llvm::isa().
Referenced by llvm::memtag::StackInfoBuilder::visit().
| Value * llvm::memtag::incrementThreadLong | ( | IRBuilder<> & | IRB, |
| Value * | ThreadLong, | ||
| unsigned int | Inc, | ||
| bool | IsMemtagDarwin = false ) |
Definition at line 320 of file MemoryTaggingSupport.cpp.
References assert(), llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateAShr(), llvm::IRBuilderBase::CreateShl(), llvm::IRBuilderBase::CreateXor(), and llvm::Value::getType().
| 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::SmallVectorTemplateCommon< T, typename >::size().
Definition at line 239 of file MemoryTaggingSupport.cpp.
References llvm::IRBuilderBase::CreateIntrinsic(), llvm::MDNode::get(), llvm::MetadataAsValue::get(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getIntPtrTy(), llvm::BasicBlock::getParent(), and llvm::GlobalValue::getParent().
Referenced by getPC().