[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