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:
- include/llvm/Analysis/LoopAccessAnalysis.h
- lib/Analysis/LoopAccessAnalysis.cpp