llvm-project/llvm/lib/Transforms
Matthew Simpson 622b95be7b [LV] Reallow positive-stride interleaved load groups with gaps
We previously disallowed interleaved load groups that may cause us to
speculatively access memory out-of-bounds (r261331). We did this by ensuring
each load group had an access corresponding to the first and last member.
Instead of bailing out for these interleaved groups, this patch enables us to
peel off the last vector iteration, ensuring that we execute at least one
iteration of the scalar remainder loop. This solution was proposed in the
review of the previous patch.

Differential Revision: http://reviews.llvm.org/D19487

llvm-svn: 267751
2016-04-27 18:21:36 +00:00
..
Hello Remove autoconf support 2016-01-26 21:29:08 +00:00
IPO [LoopDist] Add llvm.loop.distribute.enable loop metadata 2016-04-27 05:28:18 +00:00
InstCombine isSafeToLoadUnconditionally support queries without a context 2016-04-27 11:00:48 +00:00
Instrumentation Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
ObjCARC Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
Scalar isSafeToLoadUnconditionally support queries without a context 2016-04-27 11:00:48 +00:00
Utils [ThinLTO] Refine fix to avoid renaming of uses in inline assembly. 2016-04-27 14:19:38 +00:00
Vectorize [LV] Reallow positive-stride interleaved load groups with gaps 2016-04-27 18:21:36 +00:00
CMakeLists.txt
LLVMBuild.txt