ΒΆint64_t getPtrStride(
llvm::PredicatedScalarEvolution& PSE,
llvm::Value* Ptr,
const llvm::Loop* Lp,
const llvm::ValueToValueMap& StridesMap =
llvm::DenseMap<const llvm::Value*,
llvm::Value*,
llvm::DenseMapInfo<
const llvm::Value*>,
llvm::detail::DenseMapPair<
const llvm::Value*,
llvm::Value*>>(),
bool Assume = false,
bool ShouldCheckWrap = true)
int64_t getPtrStride(
llvm::PredicatedScalarEvolution& PSE,
llvm::Value* Ptr,
const llvm::Loop* Lp,
const llvm::ValueToValueMap& StridesMap =
llvm::DenseMap<const llvm::Value*,
llvm::Value*,
llvm::DenseMapInfo<
const llvm::Value*>,
llvm::detail::DenseMapPair<
const llvm::Value*,
llvm::Value*>>(),
bool Assume = false,
bool ShouldCheckWrap = true)
Description
If the pointer has a constant stride return it in units of its element size. Otherwise return zero. Ensure that it does not wrap in the address space, assuming the predicate associated with \p PSE is true. If necessary this method will version the stride of the pointer according to \p PtrToStride and therefore add further predicates to \p PSE. The \p Assume parameter indicates if we are allowed to make additional run-time assumptions.
Declared at: llvm/include/llvm/Analysis/LoopAccessAnalysis.h:693
Parameters
- llvm::PredicatedScalarEvolution& PSE
- llvm::Value* Ptr
- const llvm::Loop* Lp
- const llvm::ValueToValueMap& StridesMap = llvm::DenseMap<const llvm::Value *, llvm::Value *, llvm::DenseMapInfo<const llvm::Value *>, llvm::detail::DenseMapPair<const llvm::Value *, llvm::Value *>>()
- bool Assume = false
- bool ShouldCheckWrap = true