LLVM backend for 6502
Go to file
Owen Anderson 26c5663283 Invert and-of-or into or-of-and when doing so would allow us to clear bits of the and's mask.
This can result in increased opportunities for store narrowing in code generation.  Update a number of
tests for this change.  This fixes <rdar://problem/8285027>.

Additionally, because this inverts the order of ors and ands, some patterns for optimizing or-of-and-of-or
no longer fire in instances where they did originally.  Add a simple transform which recaptures most of these
opportunities: if we have an or-of-constant-or and have failed to fold away the inner or, commute the order 
of the two ors, to give the non-constant or a chance for simplification instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113679 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11 05:48:06 +00:00
autoconf Create PTX backend. Patch by Che-Liang Chiou! 2010-09-07 18:14:24 +00:00
bindings Add X86 MMX type to bitcode and Type. 2010-09-10 20:55:01 +00:00
cmake CMake: Fix mingw32 build. 2010-09-11 02:13:39 +00:00
docs Add documentation for llvm-diff. 2010-09-07 23:10:21 +00:00
examples CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally. 2010-09-10 21:14:25 +00:00
include Rename ConvertToSetZeroFlag to something more general. 2010-09-11 00:13:50 +00:00
lib Invert and-of-or into or-of-and when doing so would allow us to clear bits of the and's mask. 2010-09-11 05:48:06 +00:00
projects projects: Don't try to build libcxx if one happens to have it checked out into 2010-09-09 15:49:32 +00:00
runtime Rename 'libprofile/exported_symbols.lst' to 'libprofile/libprofile.exports'. 2010-09-03 15:42:45 +00:00
test Invert and-of-or into or-of-and when doing so would allow us to clear bits of the and's mask. 2010-09-11 05:48:06 +00:00
tools CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally. 2010-09-10 21:14:25 +00:00
unittests Add a new isSignWrappedSet() method to ConstantRange. 2010-09-06 23:52:49 +00:00
utils Add x86mmx to TableGen. 2010-09-11 00:16:46 +00:00
website
build-for-llvm-top.sh Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
CMakeLists.txt CMake: Fix mingw32 build. 2010-09-11 02:13:39 +00:00
configure Update configure for change to autoconf/configure.ac to add PTX backend. 2010-09-07 18:14:42 +00:00
CREDITS.TXT Flesh out the list of things I've worked on. 2010-08-29 04:22:35 +00:00
LICENSE.TXT 2010 is upon us. 2010-01-09 18:40:31 +00:00
llvm.spec.in
Makefile llvmc: remove dynamic plugins. 2010-08-15 07:07:12 +00:00
Makefile.common
Makefile.config.in Make the makefiles go much faster by using the realpath 2010-08-03 22:53:22 +00:00
Makefile.rules Makefile.rules: LOADABLE_MODULE/Win32: "all" components may be linked 2010-09-10 06:27:02 +00:00
ModuleInfo.txt Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
README.txt (Hopefully) One last test. 2010-07-27 00:04:55 +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 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.