LLVM backend for 6502
Go to file
Chandler Carruth e8187e0294 Undo a previous restriction on the inline cost calculation which Nick
introduced. Specifically, there are cost reductions for all
constant-operand icmp instructions against an alloca, regardless of
whether the alloca will in fact be elligible for SROA. That means we
don't want to abort the icmp reduction computation when we abort the
SROA reduction computation. That in turn frees us from the need to keep
a separate worklist and defer the ICmp calculations.

Use this new-found freedom and some judicious function boundaries to
factor the innards of computing the cost factor of any given instruction
out of the loop over the instructions and into static helper functions.
This greatly simplifies the code, and hopefully makes it more clear what
is happening here.

Reviewed by Eric Christopher. There is some concern that we'd like to
ensure this doesn't get out of hand, and I plan to benchmark the effects
of this change over the next few days along with some further fixes to
the inline cost.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152368 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-09 02:49:36 +00:00
autoconf configure: Don't require a perl interpreter to be present, LLVM's buildsystem doesn't depend on perl anymore. 2012-03-07 17:07:20 +00:00
bindings ocaml bindings: landing pad is now the last opcode. 2012-02-07 18:58:19 +00:00
cmake Minimal changes for LLVM to compile under VS11. 2012-03-01 22:42:52 +00:00
docs Add column width. 2012-03-06 09:23:25 +00:00
examples Switch to a more idiomatic way of silencing unused variable warnings in 2012-02-20 00:02:49 +00:00
include misched: allow the default scheduler to be one chosen by the target. 2012-03-09 00:52:20 +00:00
lib Undo a previous restriction on the inline cost calculation which Nick 2012-03-09 02:49:36 +00:00
projects configure: Don't require a perl interpreter to be present, LLVM's buildsystem doesn't depend on perl anymore. 2012-03-07 17:07:20 +00:00
runtime Fixing a warning in MSVC (this is also a test commit) 2012-02-05 19:43:39 +00:00
test Undo a previous restriction on the inline cost calculation which Nick 2012-03-09 02:49:36 +00:00
tools Have llvm-mc --version print the list of registered targets like llc does. 2012-03-08 14:24:32 +00:00
unittests Add support to the hashing infrastructure for automatically hashing both 2012-03-07 09:32:32 +00:00
utils Use uint16_t to store instruction implicit uses and defs. Reduces static data. 2012-03-08 08:22:45 +00:00
.gitignore git: Add tools/lldb to the ignore list. 2011-11-10 22:55:50 +00:00
CMakeLists.txt add LLVM_VERSION_MAJOR and _MINOR defines 2012-02-13 18:48:10 +00:00
configure configure: Don't require a perl interpreter to be present, LLVM's buildsystem doesn't depend on perl anymore. 2012-03-07 17:07:20 +00:00
CREDITS.TXT Add myself to the credits file 2012-02-29 16:43:11 +00:00
LICENSE.TXT Happy new year 2012! 2012-01-01 08:16:56 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Makefile: add missing files to FilesToConfig 2012-01-17 02:56:49 +00:00
Makefile.common
Makefile.config.in configure: Don't require a perl interpreter to be present, LLVM's buildsystem doesn't depend on perl anymore. 2012-03-07 17:07:20 +00:00
Makefile.rules build/Darwin: Make it easy to cause all tools to get codesigned (with make CODESIGN_TOOLS=1). 2012-03-06 19:07:38 +00:00
README.txt test commit 2012-02-07 08:18:05 +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.