LLVM: llvm::RuntimePointerChecking Class Reference (original) (raw)

Holds information about the memory runtime legality checks to verify that a group of pointers do not overlap. More...

#include "[llvm/Analysis/LoopAccessAnalysis.h](LoopAccessAnalysis%5F8h%5Fsource.html)"

Public Member Functions
RuntimePointerChecking (MemoryDepChecker &DC, ScalarEvolution *SE)
void reset ()
Reset the state of the pointer runtime information.
void insert (Loop *Lp, Value *Ptr, const SCEV *PtrExpr, Type *AccessTy, bool WritePtr, unsigned DepSetId, unsigned ASId, PredicatedScalarEvolution &PSE, bool NeedsFreeze)
Insert a pointer and calculate the start and end SCEVs.
bool empty () const
No run-time memory checking is necessary.
void generateChecks (MemoryDepChecker::DepCandidates &DepCands, bool UseDependencies)
Generate the checks and store it.
const SmallVectorImpl< RuntimePointerCheck > & getChecks () const
Returns the checks that generateChecks created.
std::optional< ArrayRef< PointerDiffInfo > > getDiffChecks () const
bool needsChecking (const RuntimeCheckingPtrGroup &M, const RuntimeCheckingPtrGroup &N) const
Decide if we need to add a check between two groups of pointers, according to needsChecking.
unsigned getNumberOfChecks () const
Returns the number of run-time checks required according to needsChecking.
void print (raw_ostream &OS, unsigned Depth=0) const
Print the list run-time memory checks necessary.
void printChecks (raw_ostream &OS, const SmallVectorImpl< RuntimePointerCheck > &Checks, unsigned Depth=0) const
Print Checks.
bool needsChecking (unsigned I, unsigned J) const
Decide whether we need to issue a run-time check for pointer at index I and J to prove their independence.
const PointerInfo & getPointerInfo (unsigned PtrIdx) const
Return PointerInfo for pointer at index PtrIdx.
ScalarEvolution * getSE () const
Public Attributes
bool Need = false
This flag indicates if we need to add the runtime check.
SmallVector< PointerInfo, 2 > Pointers
Information about the pointers that may require checking.
SmallVector< RuntimeCheckingPtrGroup, 2 > CheckingGroups
Holds a partitioning of pointers into "check groups".

Holds information about the memory runtime legality checks to verify that a group of pointers do not overlap.

Definition at line 457 of file LoopAccessAnalysis.h.

arePointersInSamePartition()

Check if pointers are in the same partition.

PtrToPartition contains the partition number for pointers (-1 if the pointer belongs to multiple partitions).

Definition at line 584 of file LoopAccessAnalysis.cpp.

empty()

bool llvm::RuntimePointerChecking::empty ( ) const inline

generateChecks()

getChecks()

getDiffChecks()

getNumberOfChecks()

unsigned llvm::RuntimePointerChecking::getNumberOfChecks ( ) const inline

getPointerInfo()

getSE()

insert()

needsChecking() [1/2]

needsChecking() [2/2]

print()

printChecks()

reset()

void llvm::RuntimePointerChecking::reset ( ) inline

RuntimeCheckingPtrGroup

CheckingGroups

Need

bool llvm::RuntimePointerChecking::Need = false

Pointers


The documentation for this class was generated from the following files: