llvm-project/llvm
Cameron Zwarich 3b649f4d01 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
..
autoconf Change the next release number to 3.0svn. 2011-03-08 03:00:02 +00:00
bindings Fix compiling the ocaml kaleidoscope tutorials 2011-02-09 18:32:02 +00:00
cmake Remove remnant of my experimentation with CMake. 2011-03-08 13:30:52 +00:00
docs Since last couple of days, argument number is encoded using 8 bits from line number field in argument's debug info. 2011-03-08 16:29:40 +00:00
examples Fix compiling the ocaml kaleidoscope tutorials 2011-02-09 18:32:02 +00:00
include Typo. Patch by arrowdodger. 2011-03-08 18:01:22 +00:00
lib Add support to scalar replacement for partial vector accesses of an alloca, e.g. 2011-03-09 05:43:05 +00:00
projects Regen configure 2010-12-12 21:42:01 +00:00
runtime Implementation of path profiling. 2011-01-29 01:09:53 +00:00
test Add support to scalar replacement for partial vector accesses of an alloca, e.g. 2011-03-09 05:43:05 +00:00
tools Add a special streamer to libLTO that just records symbols definitions and 2011-03-02 04:14:42 +00:00
unittests Fixes warnings emitted by Visual Studio 2010 compiler. 2011-03-01 23:11:57 +00:00
utils Stop building PPC parts on OSX. Radar 8637926. 2011-03-08 19:28:28 +00:00
website
.gitignore Cleanup and document .gitignore. 2010-12-17 17:22:50 +00:00
CMakeLists.txt Change the next release number to 3.0svn. 2011-03-08 03:00:02 +00:00
CREDITS.TXT Another git svn dcommit test. This time let's hope it doesn't kill my repo. 2010-12-10 14:45:10 +00:00
LICENSE.TXT
Makefile Merge System into Support. 2010-11-29 18:16:10 +00:00
Makefile.common
Makefile.config.in autoconf: Add --disable-embed-stdcxx to suppress linking libstdc++.a into llvm.dll with --enable-shared on Cygming. 2010-12-29 03:59:14 +00:00
Makefile.rules Reapply r127073(partially): Introduce $(ECHOPATH) to print DOSish path string on MSYS bash for alternative of $(ECHO). 2011-03-08 12:25:10 +00:00
ModuleInfo.txt Remove trailing space. This is just an excuse to poke the 2010-10-05 20:32:15 +00:00
README.txt Test commit. 2011-02-11 19:11:57 +00:00
build-for-llvm-top.sh
configure Change the next release number to 3.0svn. 2011-03-08 03:00:02 +00:00
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.