LLVM backend for 6502
Go to file
Nadav Rotem 87255a431b Patch by Shuxin Yang <shuxin.llvm@gmail.com>.
Original message:

The attached is the fix to radar://11663049. The optimization can be outlined by following rules:

   (select (x != c), e, c) -> select (x != c), e, x),
   (select (x == c), c, e) -> select (x == c), x, e)
where the <c> is an integer constant.

 The reason for this change is that : on x86, conditional-move-from-constant needs two instructions;
however, conditional-move-from-register need only one instruction.

  While the LowerSELECT() sounds to be the most convenient place for this optimization, it turns out to be a bad place. The reason is that by replacing the constant <c> with a symbolic value, it obscure some instruction-combining opportunities which would otherwise be very easy to spot. For that reason, I have to postpone the change to last instruction-combining phase.

  The change passes the test of "make check-all -C <build-root/test" and "make -C project/test-suite/SingleSource".



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165661 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 21:31:55 +00:00
autoconf
bindings
cmake [CMake] add_lit_testsuite: EXCLUDE_FROM_ALL excludes the test ${target} out of check-all. 2012-10-10 13:32:55 +00:00
docs docs: Propagate fix from r165632 to other docs. 2012-10-10 17:21:39 +00:00
examples
include tblgen: Put dyn_cast<> machinery in place for Init hierarchy. 2012-10-10 20:24:40 +00:00
lib Patch by Shuxin Yang <shuxin.llvm@gmail.com>. 2012-10-10 21:31:55 +00:00
projects
runtime Place temporary LTO files into their own subdirectory. 2012-10-10 05:29:15 +00:00
test Patch by Shuxin Yang <shuxin.llvm@gmail.com>. 2012-10-10 21:31:55 +00:00
tools Place temporary LTO files into their own subdirectory. 2012-10-10 05:29:15 +00:00
unittests
utils tblgen: Compile TableGen without RTTI. 2012-10-10 20:27:18 +00:00
.gitignore Add extra vim swap file pattern 2012-10-09 23:48:34 +00:00
CMakeLists.txt
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile Remove dead variable. 2012-10-10 18:20:49 +00:00
Makefile.common
Makefile.config.in
Makefile.rules Place temporary LTO files into their own subdirectory. 2012-10-10 05:29:15 +00:00
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.