LLVM  15.0.0git
Classes | Namespaces | Typedefs | Functions
LoopAccessAnalysis.h File Reference
#include "llvm/ADT/EquivalenceClasses.h"
#include "llvm/Analysis/LoopAnalysisManager.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/Pass.h"
Include dependency graph for LoopAccessAnalysis.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


struct  llvm::VectorizerParams
 Collection of parameters shared beetween the Loop Vectorizer and the Loop Access Analysis. More...
class  llvm::MemoryDepChecker
 Checks memory dependences among accesses to the same underlying object to determine whether there vectorization is legal or not (and at which vectorization factor). More...
struct  llvm::MemoryDepChecker::Dependence
 Dependece between memory access instructions. More...
struct  llvm::RuntimeCheckingPtrGroup
 A grouping of pointers. More...
struct  llvm::PointerDiffInfo
class  llvm::RuntimePointerChecking
 Holds information about the memory runtime legality checks to verify that a group of pointers do not overlap. More...
struct  llvm::RuntimePointerChecking::PointerInfo
class  llvm::LoopAccessInfo
 Drive the analysis of memory accesses in the loop. More...
class  llvm::LoopAccessLegacyAnalysis
 This analysis provides dependence information for the memory accesses of a loop. More...
class  llvm::LoopAccessAnalysis
 This analysis provides dependence information for the memory accesses of a loop. More...


 This is an optimization pass for GlobalISel generic memory operations.


typedef std::pair< const RuntimeCheckingPtrGroup *, const RuntimeCheckingPtrGroup * > llvm::RuntimePointerCheck
 A memcheck which made up of a pair of grouped pointers. More...


Valuellvm::stripIntegerCast (Value *V)
const SCEVllvm::replaceSymbolicStrideSCEV (PredicatedScalarEvolution &PSE, const ValueToValueMap &PtrToStride, Value *Ptr)
 Return the SCEV corresponding to a pointer with the symbolic stride replaced with constant one, assuming the SCEV predicate associated with PSE is true. More...
int64_t llvm::getPtrStride (PredicatedScalarEvolution &PSE, Type *AccessTy, Value *Ptr, const Loop *Lp, const ValueToValueMap &StridesMap=ValueToValueMap(), bool Assume=false, bool ShouldCheckWrap=true)
 If the pointer has a constant stride return it in units of the access type size. More...
Optional< intllvm::getPointersDiff (Type *ElemTyA, Value *PtrA, Type *ElemTyB, Value *PtrB, const DataLayout &DL, ScalarEvolution &SE, bool StrictCheck=false, bool CheckType=true)
 Returns the distance between the pointers PtrA and PtrB iff they are compatible and it is possible to calculate the distance between them. More...
bool llvm::sortPtrAccesses (ArrayRef< Value * > VL, Type *ElemTy, const DataLayout &DL, ScalarEvolution &SE, SmallVectorImpl< unsigned > &SortedIndices)
 Attempt to sort the pointers in VL and return the sorted indices in SortedIndices, if reordering is required. More...
bool llvm::isConsecutiveAccess (Value *A, Value *B, const DataLayout &DL, ScalarEvolution &SE, bool CheckType=true)
 Returns true if the memory operations A and B are consecutive. More...