LLVM backend for 6502
Go to file
Benjamin Kramer 7d6fe13efc Add some x86 specific dagcombines for conditional increments.
(add Y, (sete  X, 0)) -> cmp X, 1; adc  0, Y
(add Y, (setne X, 0)) -> cmp X, 1; sbb -1, Y
(sub (sete  X, 0), Y) -> cmp X, 1; sbb  0, Y
(sub (setne X, 0), Y) -> cmp X, 1; adc -1, Y

for
  unsigned foo(unsigned a, unsigned b) {
    if (a == 0) b++;
    return b;
  }
we now get:
  foo:
    cmpl  $1, %edi
    movl  %esi, %eax
    adcl  $0, %eax
    ret
instead of:
  foo:
    testl %edi, %edi
    sete  %al
    movzbl  %al, %eax
    addl  %esi, %eax
    ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122364 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21 21:41:44 +00:00
autoconf Use GZIPBIN instead of GZIP. Apparently gzip uses GZIP as an environment 2010-12-10 01:31:51 +00:00
bindings Try to fix ocaml bindings. 2010-10-08 00:36:21 +00:00
cmake Update cmake library dependencies. 2010-12-20 09:47:08 +00:00
docs Revert 122341. It breaks some darwin tests. 2010-12-21 17:25:43 +00:00
examples Fix missing includes of "llvm/Analysis/Passes.h" in the tutorials. Thanks 2010-11-16 17:28:22 +00:00
include Don't relax org or align. They change size as the relaxation happens, but they 2010-12-21 20:35:18 +00:00
lib Add some x86 specific dagcombines for conditional increments. 2010-12-21 21:41:44 +00:00
projects Regen configure 2010-12-12 21:42:01 +00:00
runtime Rename 'libprofile/exported_symbols.lst' to 'libprofile/libprofile.exports'. 2010-09-03 15:42:45 +00:00
test Add some x86 specific dagcombines for conditional increments. 2010-12-21 21:41:44 +00:00
tools Support/PathV1: Deprecate get{Basename,Dirname,Suffix}. 2010-12-18 22:23:07 +00:00
unittests Add ADT/IntEqClasses.h as a light-weight implementation of EquivalenceClasses.h. 2010-12-21 00:04:46 +00:00
utils Revert 122341. It breaks some darwin tests. 2010-12-21 17:25:43 +00:00
website
.gitignore Cleanup and document .gitignore. 2010-12-17 17:22:50 +00:00
build-for-llvm-top.sh
CMakeLists.txt New cmake option LLVM_APPEND_VC_REV for controlling when the VC 2010-12-20 09:47:13 +00:00
configure Use GZIPBIN instead of GZIP. Apparently gzip uses GZIP as an environment 2010-12-10 01:31:51 +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 2010 is upon us. 2010-01-09 18:40:31 +00:00
llvm.spec.in
Makefile Merge System into Support. 2010-11-29 18:16:10 +00:00
Makefile.common
Makefile.config.in Use GZIPBIN instead of GZIP. Apparently gzip uses GZIP as an environment 2010-12-10 01:31:51 +00:00
Makefile.rules build: Shared libraries shouldn't used RPATH on Darwin, only main executables 2010-12-08 02:29:26 +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 Undoing test commit blank space. 2010-09-29 17:39:29 +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.