LLVM backend for 6502
Go to file
Chandler Carruth 464bda3a16 Teach the reassociate pass to fold chains of multiplies with repeated
elements to minimize the number of multiplies required to compute the
final result. This uses a heuristic to attempt to form near-optimal
binary exponentiation-style multiply chains. While there are some cases
it misses, it seems to at least a decent job on a very diverse range of
inputs.

Initial benchmarks show no interesting regressions, and an 8%
improvement on SPASS. Let me know if any other interesting results (in
either direction) crop up!

Credit to Richard Smith for the core algorithm, and helping code the
patch itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155616 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-26 05:30:30 +00:00
autoconf Kick off 3.2 cycle for LLVM trunk. 2012-04-20 18:15:07 +00:00
bindings
cmake CMake: Enable LLVM_COMPILER_JOBS on all MS IDEs. We don't support older environments than VS9. 2012-04-21 14:51:02 +00:00
docs Reapply the SmallMap patch with a fix. 2012-04-25 18:01:58 +00:00
examples
include Reapply the SmallMap patch with a fix. 2012-04-25 18:01:58 +00:00
lib Teach the reassociate pass to fold chains of multiplies with repeated 2012-04-26 05:30:30 +00:00
projects
runtime
test Teach the reassociate pass to fold chains of multiplies with repeated 2012-04-26 05:30:30 +00:00
tools openbsd doesn't support soname, patch by Brad Smith! 2012-04-25 06:37:20 +00:00
unittests Reapply the SmallMap patch with a fix. 2012-04-25 18:01:58 +00:00
utils Add ifdef around getSubtargetFeatureName in tablegen output file so that only targets that want the function get it. This prevents other targets from getting an unused function warning. 2012-04-25 06:56:34 +00:00
.gitignore
CMakeLists.txt CMake: Prune redundant LLVM_COMPILER_JOBS from llvm/CMakeLists.txt. HandleLLVMOptions.cmake has it. 2012-04-21 14:50:56 +00:00
configure Kick off 3.2 cycle for LLVM trunk. 2012-04-20 18:15:07 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile When cross compiling, install a host version of llvm-config. <rdar://11187889> 2012-04-19 23:19:55 +00:00
Makefile.common
Makefile.config.in
Makefile.rules
README.txt

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.