LLVM 20.0.0git
Classes | Enumerations | Functions
llvm::memtag Namespace Reference

Classes

struct  AllocaInfo
 
struct  StackInfo
 
class  StackInfoBuilder
 

Enumerations

enum class  AllocaInterestingness { kUninteresting , kSafe , kInteresting }
 

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)
 
InstructiongetUntagLocationIfFunctionExit (Instruction &Inst)
 
uint64_t getAllocaSizeInBytes (const AllocaInst &AI)
 
void alignAndPadAlloca (memtag::AllocaInfo &Info, llvm::Align Align)
 
bool isLifetimeIntrinsic (Value *V)
 
ValuereadRegister (IRBuilder<> &IRB, StringRef Name)
 
ValuegetFP (IRBuilder<> &IRB)
 
ValuegetPC (const Triple &TargetTriple, IRBuilder<> &IRB)
 
ValuegetAndroidSlotPtr (IRBuilder<> &IRB, int Slot)
 
void annotateDebugRecords (AllocaInfo &Info, unsigned int Tag)
 
ValueincrementThreadLong (IRBuilder<> &IRB, Value *ThreadLong, unsigned int Inc)
 
static DbgAssignIntrinsicDynCastToDbgAssign (DbgVariableIntrinsic *DVI)
 
static DbgVariableRecordDynCastToDbgAssign (DbgVariableRecord *DVR)
 

Enumeration Type Documentation

◆ AllocaInterestingness

Enumerator
kUninteresting 
kSafe 
kInteresting 

Definition at line 68 of file MemoryTaggingSupport.h.

Function Documentation

◆ alignAndPadAlloca()

void llvm::memtag::alignAndPadAlloca ( memtag::AllocaInfo Info,
llvm::Align  Align 
)

◆ annotateDebugRecords()

void llvm::memtag::annotateDebugRecords ( AllocaInfo Info,
unsigned int  Tag 
)

◆ DynCastToDbgAssign() [1/2]

static DbgAssignIntrinsic * llvm::memtag::DynCastToDbgAssign ( DbgVariableIntrinsic DVI)
static

Definition at line 306 of file MemoryTaggingSupport.cpp.

Referenced by annotateDebugRecords().

◆ DynCastToDbgAssign() [2/2]

static DbgVariableRecord * llvm::memtag::DynCastToDbgAssign ( DbgVariableRecord DVR)
static

Definition at line 310 of file MemoryTaggingSupport.cpp.

References llvm::DbgVariableRecord::isDbgAssign().

◆ forAllReachableExits()

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 
)

◆ getAllocaSizeInBytes()

uint64_t llvm::memtag::getAllocaSizeInBytes ( const AllocaInst AI)

◆ getAndroidSlotPtr()

Value * llvm::memtag::getAndroidSlotPtr ( IRBuilder<> &  IRB,
int  Slot 
)

◆ getFP()

Value * llvm::memtag::getFP ( IRBuilder<> &  IRB)

◆ getPC()

Value * llvm::memtag::getPC ( const Triple TargetTriple,
IRBuilder<> &  IRB 
)

◆ getUntagLocationIfFunctionExit()

Instruction * llvm::memtag::getUntagLocationIfFunctionExit ( Instruction Inst)

◆ incrementThreadLong()

Value * llvm::memtag::incrementThreadLong ( IRBuilder<> &  IRB,
Value ThreadLong,
unsigned int  Inc 
)

◆ isLifetimeIntrinsic()

bool llvm::memtag::isLifetimeIntrinsic ( Value V)

Definition at line 264 of file MemoryTaggingSupport.cpp.

References II.

◆ isStandardLifetime()

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().

◆ readRegister()

Value * llvm::memtag::readRegister ( IRBuilder<> &  IRB,
StringRef  Name 
)