LLVM backend for 6502
Go to file
Chris Lattner fd3f635103 Fix rdar://9289512 - not folding load into compare at -O0
The basic issue here is that bottom-up isel is matching the branch
and compare, and was failing to fold the load into the branch/compare
combo.  Fixing this (by allowing folding into any instruction of a
sequence that is selected) allows us to produce things like:


cmpb    $0, 52(%rax)
je      LBB4_2

instead of:

movb    52(%rax), %cl
cmpb    $0, %cl
je      LBB4_2

This makes the generated -O0 code run a bit faster, but also speeds up
compile time by putting less pressure on the register allocator and 
generating less code.

This was one of the biggest classes of missing load folding.  Implementing
this shrinks 176.gcc's c-decl.s (as a random example) by about 4% in (verbose-asm)
line count.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129656 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-17 06:35:44 +00:00
autoconf Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
bindings Fix compiling the ocaml kaleidoscope tutorials 2011-02-09 18:32:02 +00:00
cmake Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
docs Introduce support to encode Objective-C property information in debugging information generated for an interface. 2011-04-16 00:11:51 +00:00
examples Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
include Fix rdar://9289512 - not folding load into compare at -O0 2011-04-17 06:35:44 +00:00
lib Fix rdar://9289512 - not folding load into compare at -O0 2011-04-17 06:35:44 +00:00
projects Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
runtime Write out uint64_t as i{0..32},i{33..64} instead of i{0..32},0. 2011-04-16 10:25:32 +00:00
test Fix rdar://9289512 - not folding load into compare at -O0 2011-04-17 06:35:44 +00:00
tools Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
unittests Implements StringRef::compare with bounds. It is behaves similarly to strncmp(). Unit tests also included. 2011-04-15 17:56:50 +00:00
utils Initial work to improve documentation for Clang's diagnostics, from Matthieu Monrocq 2011-04-15 22:04:07 +00:00
website
.gitignore Cleanup and document .gitignore. 2010-12-17 17:22:50 +00:00
build-for-llvm-top.sh
CMakeLists.txt Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
configure Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +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
llvm.spec.in
Makefile build: Add support for a SHOW_DIAGNOSTICS build variable. 2011-04-11 22:37:39 +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 Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
ModuleInfo.txt
README.txt Test commit. 2011-02-11 19:11:57 +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.