summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorCameron Zwarich <zwarich@apple.com>2011-03-09 05:43:05 +0000
committerCameron Zwarich <zwarich@apple.com>2011-03-09 05:43:05 +0000
commit3b649f4d01e8f42165b9d956251a6772b3a9b8a9 (patch)
tree2aee14696163ecf5e0e4f1ab7c6278a217e6be34 /clang/lib/CodeGen/CodeGenModule.cpp
parent43a241fa06e83e879c229ad3b31f5418d351f7f3 (diff)
downloadbcm5719-llvm-3b649f4d01e8f42165b9d956251a6772b3a9b8a9.tar.gz
bcm5719-llvm-3b649f4d01e8f42165b9d956251a6772b3a9b8a9.zip
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
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud