LLVM backend for 6502
Go to file
Chris Lattner cf078f2b20 Allow loop-idiom to run on multiple BB loops, but still only scan the loop
header for now for memset/memcpy opportunities.  It turns out that loop-rotate
is successfully rotating loops, but *DOESN'T MERGE THE BLOCKS*, turning "for 
loops" into 2 basic block loops that loop-idiom was ignoring.

With this fix, we form many *many* more memcpy and memsets than before, including
on the "history" loops in the viterbi benchmark, which look like this:

        for (j=0; j<MAX_history; ++j) {
          history_new[i][j+1] = history[2*i][j];
        }

Transforming these loops into memcpy's speeds up the viterbi benchmark from
11.98s to 3.55s on my machine.  Woo.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122685 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-02 07:58:36 +00:00
autoconf 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
bindings Fix OCaml bindings crash, PR8847. 2010-12-23 15:49:26 +00:00
cmake CMake (MSVC): cmake automatically adds the /EHsc and /GR compiler 2010-12-31 19:10:49 +00:00
docs Correct a bunch of mistakes which meant that the example pass didn't 2011-01-01 17:37:07 +00:00
examples Do not re-test for the existence of pthread.h. 2010-12-23 21:27:22 +00:00
include Remove the #ifdef'd code for balancing the eval-link data structure. It doesn't 2011-01-02 07:53:49 +00:00
lib Allow loop-idiom to run on multiple BB loops, but still only scan the loop 2011-01-02 07:58:36 +00:00
projects
runtime
test Allow loop-idiom to run on multiple BB loops, but still only scan the loop 2011-01-02 07:58:36 +00:00
tools 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
unittests fix PR8867: a crash handling fp128. Thanks to Nick for the testcase. 2010-12-29 01:33:36 +00:00
utils Trailing whitespace. 2010-12-24 05:06:32 +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 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
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
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
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.