1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/lib/Transforms
Matthew Simpson bcc32afd72 Reapply r257800 with fix
The fix uniques the bundle of getelementptr indices we are about to vectorize
since it's possible for the same index to be used by multiple instructions.
The original commit message is below.

[SLP] Vectorize the index computations of getelementptr instructions.

This patch seeds the SLP vectorizer with getelementptr indices. The primary
motivation in doing so is to vectorize gather-like idioms beginning with
consecutive loads (e.g., g[a[0] - b[0]] + g[a[1] - b[1]] + ...). While these
cases could be vectorized with a top-down phase, seeding the existing bottom-up
phase with the index computations avoids the complexity, compile-time, and
phase ordering issues associated with a full top-down pass. Only bundles of
single-index getelementptrs with non-constant differences are considered for
vectorization.

llvm-svn: 257918
2016-01-15 18:51:51 +00:00
..
Hello
InstCombine Re-commit r257064, after it was reverted in r257340. 2016-01-15 15:52:05 +00:00
Instrumentation Update to use new name alignTo(). 2016-01-14 21:06:47 +00:00
IPO Refactor threshold computation for inline cost analysis 2016-01-14 23:16:29 +00:00
ObjCARC Refactor: Simplify boolean conditional return statements in lib/Transforms/ObjCARC 2015-12-28 16:19:08 +00:00
Scalar Change isSafeToLoadUnconditionally arguments order. Separated from http://reviews.llvm.org/D10920. 2016-01-15 15:27:46 +00:00
Utils Stop increasing alignment of externally-visible globals on ELF 2016-01-15 16:33:06 +00:00
Vectorize Reapply r257800 with fix 2016-01-15 18:51:51 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile