[PATCH] D126533: [LAA] Relax pointer dependency with runtime pointer checks

Dinar Temirbulatov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 27 05:43:40 PDT 2022


dtemirbulatov created this revision.
dtemirbulatov added reviewers: fhahn, peterwaller-arm, paulwalker-arm, brad, efriedma, lebedev.ri.
Herald added subscribers: Groverkss, hiraditya.
Herald added a project: All.
dtemirbulatov requested review of this revision.
Herald added a project: LLVM.

Following patch allows us to emit extra run-time pointer checks and gives us extra opportunity to vectorize if one pointer is an invariant in a loop and another one can be deduced to an affine expression.  With this change applied we could now vectorize following example:

struct Arrays {

  double X[128];
  double Y[128];
  double Z[128];
  double D;

} s1;
int n;
...

  for ( int k=0 ; k<n ; k++ )
   s1.X[k] = s1.D+ s1.Y[k] * s1.Z[k];

...


https://reviews.llvm.org/D126533

Files:
  llvm/lib/Analysis/LoopAccessAnalysis.cpp
  llvm/test/Analysis/LoopAccessAnalysis/pointer-phis.ll
  llvm/test/Transforms/LoopDistribute/scev-inserted-runtime-check.ll
  llvm/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
  llvm/test/Transforms/LoopVectorize/global_alias.ll
  llvm/test/Transforms/LoopVectorize/memory-dep-remarks.ll
  llvm/test/Transforms/LoopVectorize/vectorize-pointer-phis.ll
  llvm/test/Transforms/PhaseOrdering/AArch64/matrix-extract-insert.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D126533.432521.patch
Type: text/x-patch
Size: 80137 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220527/84dee57e/attachment.bin>


More information about the llvm-commits mailing list