LLVM backend for 6502
Go to file
Andrew Trick 22d20c218a Adding IV chain generation to LSR.
After collecting chains, check if any should be materialized. If so,
hide the chained IV users from the LSR solver. LSR will only solve for
the head of the chain. GenerateIVChains will then materialize the
chained IV users by computing the IV relative to its previous value in
the chain.

In theory, chained IV users could be exposed to LSR's solver. This
would be considerably complicated to implement and I'm not aware of a
case where we need it. In practice it's more important to
intelligently prune the search space of nontrivial loops before
running the solver, otherwise the solver is often forced to prune the
most optimal solutions. Hiding the chained users does this well, so
that LSR is more likely to find the best IV for the chain as a whole.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147801 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-09 21:18:52 +00:00
autoconf revert r147542 after comments from Joerg Sonnenberger 2012-01-05 18:28:46 +00:00
bindings Update OCaml bindings for the new half float type. 2011-12-28 18:51:08 +00:00
cmake revert r147542 after comments from Joerg Sonnenberger 2012-01-05 18:28:46 +00:00
docs Fix dead link 2012-01-07 04:11:27 +00:00
examples LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
include Split AsmParser into two components - AsmParser and AsmParserVariant 2012-01-09 19:13:28 +00:00
lib Adding IV chain generation to LSR. 2012-01-09 21:18:52 +00:00
projects revert r147542 after comments from Joerg Sonnenberger 2012-01-05 18:28:46 +00:00
runtime LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
test Adding IV chain generation to LSR. 2012-01-09 21:18:52 +00:00
tools Split Finish into Finish and FinishImpl to have a common place to do end of 2012-01-07 03:13:18 +00:00
unittests Undo the hack in r147427 and move this unittest to a better home. This 2012-01-02 09:19:48 +00:00
utils Split AsmParser into two components - AsmParser and AsmParserVariant 2012-01-09 19:13:28 +00:00
.gitignore git: Add tools/lldb to the ignore list. 2011-11-10 22:55:50 +00:00
CMakeLists.txt capitalize project name, reference bugzilla 2011-12-18 18:50:16 +00:00
configure revert r147542 after comments from Joerg Sonnenberger 2012-01-05 18:28:46 +00:00
CREDITS.TXT CREDITS.TXT: Add a line. (test commit) 2011-10-29 23:42:14 +00:00
LICENSE.TXT Happy new year 2012! 2012-01-01 08:16:56 +00:00
llvm.spec.in
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile llvm-config: Replace with C++ version (was llvm-config-2). 2011-12-01 20:18:09 +00:00
Makefile.common
Makefile.config.in capitalize project name, reference bugzilla 2011-12-18 18:50:16 +00:00
Makefile.rules PR11642 has been fixed, enable -fvisibility-inlines-hidden everywhere. 2011-12-27 21:37:11 +00:00
README.txt Undo test commit 2011-11-22 20:05:48 +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.