[PATCH] D158334: [LAA] Keep track of ptr SCEV related to MemAccessInfo
Allen zhong via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 19 08:04:17 PDT 2023
Allen created this revision.
Herald added subscribers: javed.absar, hiraditya.
Herald added a project: All.
Allen requested review of this revision.
Herald added subscribers: llvm-commits, wangpc.
Herald added a project: LLVM.
This patch extends MemAccessInfo and PointerInfo to track the associated
SCEV for the pointer. The SCEV expressions is then used instead of
accessing ScalarEvolution on demand.
This has multiple benefits:
1. We only need to replace symbolic strides once, up front.
2. Allows for more flexibility to have accesses with different SCEV expressions for their pointers.For example, it allows adding 2 MemAccessInfo for a pointer fed by a select.
This is still a bit rough around the edges. In particular the printing
is still missing the SCEV expression, rebase on 114479.
https://reviews.llvm.org/D158334
Files:
llvm/include/llvm/Analysis/LoopAccessAnalysis.h
llvm/lib/Analysis/LoopAccessAnalysis.cpp
llvm/test/Analysis/LoopAccessAnalysis/depend_diff_types.ll
llvm/test/Analysis/LoopAccessAnalysis/depend_diff_types_opaque_ptr.ll
llvm/test/Analysis/LoopAccessAnalysis/max_safe_dep_dist_non_unit_stride.ll
llvm/test/Analysis/LoopAccessAnalysis/pointer-phis.ll
llvm/test/Analysis/LoopAccessAnalysis/symbolic-stride.ll
llvm/test/Transforms/LoopLoadElim/symbolic-stride.ll
llvm/test/Transforms/LoopVectorize/runtime-check-pointer-element-type.ll
llvm/test/Transforms/LoopVectorize/strided-accesses-interleave-only.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D158334.551755.patch
Type: text/x-patch
Size: 42608 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230819/0418596d/attachment.bin>
More information about the llvm-commits
mailing list