LLVM backend for 6502
Go to file
Duncan Sands 24080a9878 The accumulator tail recursion transform claims to work for any associative
operation, but the way it's implemented requires the operation to also be
commutative.  So add a check for commutativity (and tweak the corresponding
comments).  This makes no difference in practice since every associative
LLVM instruction is also commutative!  Here's an example to show the need
for commutativity: the accum_recursion.ll testcase calculates the factorial
function.  Before the transformation the result of a call is
  ((((1*1)*2)*3)...)*x
while afterwards it is
  (((1*x)*(x-1))...*2)*1
which clearly requires both associativity and commutativity of * to be equal
to the original.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108056 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-10 20:31:42 +00:00
autoconf Pull in the libCrashReporterClient.a information with a warning comment. 2010-06-28 18:25:51 +00:00
bindings Implement the "linker_private_weak" linkage type. This will be used for 2010-07-01 21:55:59 +00:00
cmake Don't link against libm and libpthread which don't exist in BeOS/Haiku. Also, 2010-06-23 06:48:34 +00:00
docs Tweak some docs now that the default build is called Debug+Asserts. 2010-07-08 08:27:18 +00:00
examples fix several bugs in the tutorial, patch by Kevin Kelley! 2010-06-21 22:51:14 +00:00
include Reapply bottom-up fast-isel, with several fixes for x86-32: 2010-07-10 09:00:22 +00:00
lib The accumulator tail recursion transform claims to work for any associative 2010-07-10 20:31:42 +00:00
projects
runtime Delete a blank line. 2010-04-16 13:32:55 +00:00
test FileCheckize inline asm FP stack tests 2010-07-10 16:30:25 +00:00
tools Implement the "linker_private_weak" linkage type. This will be used for 2010-07-01 21:55:59 +00:00
unittests Use non-bool values for .count. 2010-07-10 18:56:35 +00:00
utils Reapply bottom-up fast-isel, with several fixes for x86-32: 2010-07-10 09:00:22 +00:00
website
build-for-llvm-top.sh
CMakeLists.txt Fix LLVM CMake PACKAGE_VERSION variable. 2010-06-25 16:29:14 +00:00
configure Pull in the libCrashReporterClient.a information with a warning comment. 2010-06-28 18:25:51 +00:00
CREDITS.TXT Adding the MicroBlaze backend. 2010-02-23 19:15:24 +00:00
LICENSE.TXT
llvm.spec.in
Makefile Issue the warning about being slow whenever optimization is disabled, 2010-07-07 16:48:16 +00:00
Makefile.common
Makefile.config.in typo in comment, regeneration not necessary 2010-07-07 13:58:46 +00:00
Makefile.rules Rename "Release" builds as "Release+Asserts"; rename "Release-Asserts" 2010-07-07 07:48:00 +00:00
ModuleInfo.txt
README.txt Give packagers some advice about how to build LLVM so it's useful to 2010-02-26 00:54:42 +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.