Go to the source code of this file.
|
namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations.
|
|
|
const SCEV * | llvm::replaceSymbolicStrideSCEV (PredicatedScalarEvolution &PSE, const DenseMap< Value *, const SCEV * > &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.
|
|
std::optional< int64_t > | llvm::getPtrStride (PredicatedScalarEvolution &PSE, Type *AccessTy, Value *Ptr, const Loop *Lp, const DenseMap< Value *, const SCEV * > &StridesMap=DenseMap< Value *, const SCEV * >(), bool Assume=false, bool ShouldCheckWrap=true) |
| If the pointer has a constant stride return it in units of the access type size.
|
|
std::optional< int > | llvm::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.
|
|
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.
|
|
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.
|
|