LLVM 17.0.0git
|
A grouping of pointers. More...
#include "llvm/Analysis/LoopAccessAnalysis.h"
Public Member Functions | |
RuntimeCheckingPtrGroup (unsigned Index, RuntimePointerChecking &RtCheck) | |
Create a new pointer checking group containing a single pointer, with index Index in RtCheck. | |
bool | addPointer (unsigned Index, RuntimePointerChecking &RtCheck) |
Tries to add the pointer recorded in RtCheck at index Index to this pointer checking group. | |
bool | addPointer (unsigned Index, const SCEV *Start, const SCEV *End, unsigned AS, bool NeedsFreeze, ScalarEvolution &SE) |
Public Attributes | |
const SCEV * | High |
The SCEV expression which represents the upper bound of all the pointers in this group. | |
const SCEV * | Low |
The SCEV expression which represents the lower bound of all the pointers in this group. | |
SmallVector< unsigned, 2 > | Members |
Indices of all the pointers that constitute this grouping. | |
unsigned | AddressSpace |
Address space of the involved pointers. | |
bool | NeedsFreeze = false |
Whether the pointer needs to be frozen after expansion, e.g. | |
A grouping of pointers.
A single memcheck is required between two groups.
Definition at line 337 of file LoopAccessAnalysis.h.
RuntimeCheckingPtrGroup::RuntimeCheckingPtrGroup | ( | unsigned | Index, |
RuntimePointerChecking & | RtCheck | ||
) |
Create a new pointer checking group containing a single pointer, with index Index
in RtCheck.
Definition at line 185 of file LoopAccessAnalysis.cpp.
References Members, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
bool RuntimeCheckingPtrGroup::addPointer | ( | unsigned | Index, |
const SCEV * | Start, | ||
const SCEV * | End, | ||
unsigned | AS, | ||
bool | NeedsFreeze, | ||
ScalarEvolution & | SE | ||
) |
Definition at line 397 of file LoopAccessAnalysis.cpp.
References assert(), End, getMinFromExprs(), High, Low, Members, NeedsFreeze, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
bool RuntimeCheckingPtrGroup::addPointer | ( | unsigned | Index, |
RuntimePointerChecking & | RtCheck | ||
) |
Tries to add the pointer recorded in RtCheck at index Index
to this pointer checking group.
We can only add a pointer to a checking group if we will still be able to get the upper and lower bounds of the check. Returns true in case of success, false otherwise.
Definition at line 389 of file LoopAccessAnalysis.cpp.
References addPointer(), and llvm::RuntimePointerChecking::Pointers.
Referenced by addPointer().
unsigned llvm::RuntimeCheckingPtrGroup::AddressSpace |
Address space of the involved pointers.
Definition at line 360 of file LoopAccessAnalysis.h.
Referenced by expandBounds().
The SCEV expression which represents the upper bound of all the pointers in this group.
Definition at line 353 of file LoopAccessAnalysis.h.
Referenced by addPointer(), and expandBounds().
The SCEV expression which represents the lower bound of all the pointers in this group.
Definition at line 356 of file LoopAccessAnalysis.h.
Referenced by addPointer(), and expandBounds().
SmallVector<unsigned, 2> llvm::RuntimeCheckingPtrGroup::Members |
Indices of all the pointers that constitute this grouping.
Definition at line 358 of file LoopAccessAnalysis.h.
Referenced by addPointer(), and RuntimeCheckingPtrGroup().
bool llvm::RuntimeCheckingPtrGroup::NeedsFreeze = false |
Whether the pointer needs to be frozen after expansion, e.g.
because it may be poison outside the loop.
Definition at line 363 of file LoopAccessAnalysis.h.
Referenced by addPointer(), and expandBounds().