1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-01 16:33:37 +01:00
llvm-mirror/lib/Transforms
Cameron Zwarich e0b4705b03 Add support to scalar replacement for partial vector accesses of an alloca, e.g.
a union of a float, <2 x float>, and <4 x float>. This mostly comes up with the
use of vector intrinsics, especially in NEON when programmers know the layout of
the register file. This enables codegen to eliminate a lot of the subregister
traffic it would otherwise generate.

This commit only enables this for a small number of floating-point cases, but a
lot more integer cases. I assume this is okay for all ports, but I did not do
extensive testing of the quality of code involving i512 vectors and the like. If
there is a use case where this generates worse code than before, let me know and
we can scale it back.

This fixes <rdar://problem/9036264>.

llvm-svn: 127317
2011-03-09 05:43:05 +00:00
..
Hello
InstCombine PR9346: Prevent SimplifyDemandedBits from incorrectly introducing 2011-03-09 01:28:35 +00:00
Instrumentation Implementation of path profiling. 2011-01-29 01:09:53 +00:00
IPO Don't internalize available_externally functions. We already did the right 2011-03-06 23:41:34 +00:00
Scalar Add support to scalar replacement for partial vector accesses of an alloca, e.g. 2011-03-09 05:43:05 +00:00
Utils PR9420; an instruction before an unreachable is guaranteed not to have any 2011-03-09 00:48:33 +00:00
CMakeLists.txt Move library stuff out of the toplevel CMakeLists.txt file. 2011-02-18 22:06:14 +00:00
Makefile