[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