LLVM backend for 6502
Go to file
Chandler Carruth fc72ae613a Teach instsimplify how to constant fold pointer differences.
Typically instcombine has handled this, but pointer differences show up
in several contexts where we would like to get constant folding, and
cannot afford to run instcombine. Specifically, I'm working on improving
the constant folding of arguments used in inline cost analysis with
instsimplify.

Doing this in instsimplify implies some algorithm changes. We have to
handle multiple layers of all-constant GEPs because instsimplify cannot
fold them into a single GEP the way instcombine can. Also, we're only
interested in all-constant GEPs. The result is that this doesn't really
replace the instcombine logic, it's just complimentary and focused on
constant folding.

Reviewed on IRC by Benjamin Kramer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152555 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-12 11:19:31 +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 [llvm.py] Implement disassembler interface 2012-03-11 02:32:56 +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 Convert more static tables of registers used by calling convention to uint16_t to reduce space. 2012-03-11 07:57:25 +00:00
lib Teach instsimplify how to constant fold pointer differences. 2012-03-12 11:19:31 +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 Teach instsimplify how to constant fold pointer differences. 2012-03-12 11:19:31 +00:00
tools llvm::SwitchInst 2012-03-11 06:09:17 +00:00
unittests Fix warnings. 2012-03-11 00:51:01 +00:00
utils Convert more static tables of registers used by calling convention to uint16_t to reduce space. 2012-03-11 07:57:25 +00:00
.gitignore
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.