LLVM backend for 6502
Go to file
Chandler Carruth 330aa6fd6b [x86] Add a dedicated lowering path for zext-compatible vector shuffles
to the new vector shuffle lowering code.

This allows us to emit PMOVZX variants consistently for patterns where
it is a viable lowering. This instruction is both fast and allows us to
fold loads into it. This only hooks the new lowering up for i16 and i8
element widths, mostly so I could manage the change to the tests. I'll
add the i32 one next, although it is significantly less interesting.

One thing to note is that we already had some tests for these patterns
but those tests had far less horrible instructions. The problem is that
those tests weren't checking the strict start and end of the instruction
sequence. =[ As a consequence something changed in the lowering making
us generate *TERRIBLE* code for these patterns in SSE2 through SSSE3.
I've consolidated all of the tests and spelled out the madness that we
currently emit for these shuffles. I'm going to try to figure out what
has gone wrong here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218102 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-19 06:07:49 +00:00
autoconf Delete support for AuroraUX. 2014-08-14 15:15:09 +00:00
bindings Reinstate "Nuke the old JIT." 2014-09-02 22:28:02 +00:00
cmake Add CMake check for libatomic. 2014-09-12 11:08:59 +00:00
docs Fix sphinx warning. 2014-09-18 21:54:02 +00:00
examples Add doInitialization/doFinalization to DataLayoutPass. 2014-09-10 21:27:43 +00:00
include Optimize sext/zext insertion algorithm in back-end. 2014-09-19 05:30:35 +00:00
lib [x86] Add a dedicated lowering path for zext-compatible vector shuffles 2014-09-19 06:07:49 +00:00
projects [cmake] Use the external project machinery for libcxxabi so that it can 2014-07-25 10:27:40 +00:00
test [x86] Add a dedicated lowering path for zext-compatible vector shuffles 2014-09-19 06:07:49 +00:00
tools LTO: introduce object file-based on-disk module format. 2014-09-18 21:28:49 +00:00
unittests LineIterator: Provide a variant that keeps blank lines 2014-09-17 15:43:01 +00:00
utils [lit] Parse all strings as UTF-8 rather than ASCII. 2014-09-12 16:46:05 +00:00
.arcconfig Updated phabricator server. 2014-04-07 03:57:04 +00:00
.clang-format Test commit. 2014-03-02 13:08:46 +00:00
.clang-tidy Add .clang-tidy configuration file to provide LLVM-optimized defaults for 2014-09-08 13:30:00 +00:00
.gitignore Add Polly to the ignored trees. 2014-06-25 13:13:36 +00:00
CMakeLists.txt Enabling LLVM & Clang to be cross-compiled using CMake from a single configuration command line 2014-09-03 23:21:18 +00:00
CODE_OWNERS.TXT Add Tom Stellard's role as 3.5 release manager. 2014-09-12 08:07:31 +00:00
configure Delete support for AuroraUX. 2014-08-14 15:15:09 +00:00
CREDITS.TXT Rise from the dead and update personal info 2014-08-25 17:51:04 +00:00
LICENSE.TXT Remove projects/sample. 2014-03-12 22:40:22 +00:00
llvm.spec.in
LLVMBuild.txt Remove the very substantial, largely unmaintained legacy PGO 2013-10-02 15:42:23 +00:00
Makefile [configure/make] Propagate names of build host tools when making BuildTools 2014-03-25 21:45:41 +00:00
Makefile.common Makefile.common: Update a description, s/Source/SOURCES/ , according to MakefileGuide.html#control-variables . 2012-12-07 01:43:23 +00:00
Makefile.config.in Track clang r213171 2014-07-16 16:50:34 +00:00
Makefile.rules Disable GCC's -Woverloaded-virtual in the configure+make build. Clang's is better. 2014-09-18 16:34:25 +00:00
README.txt Trivial test commit. 2014-04-26 19:05:45 +00:00

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 documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

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