Fork of llvm with experimental commits and workarounds for RPCS3
Go to file
Hans Wennborg 64e1ab6df1 CodeGenPrep: turn lookup tables into switches for some targets.
This is a follow-up from r163302, which added a transformation to
SimplifyCFG that turns some switches into loads from lookup tables.

It was pointed out that some targets, such as GPUs and deeply embedded
targets, might not find this appropriate, but SimplifyCFG doesn't have
enough information about the target to decide this.

This patch adds the reverse transformation to CodeGenPrep: it turns
loads from lookup tables back into switches for targets where we do not
build jump tables (assuming these are also the targets where lookup
tables are inappropriate).

Hopefully we will eventually get to have target information in
SimplifyCFG, and then this CodeGenPrep transformation can be removed.

llvm-svn: 164206
2012-09-19 07:48:16 +00:00
autoconf Temporarily revert this to bring back the bots. 2012-08-28 01:17:46 +00:00
bindings add support for ocaml 3.12 2012-09-02 14:42:56 +00:00
cmake CMake toolchain file for Android NDK. 2012-09-11 11:54:27 +00:00
docs Test commit 2012-09-18 22:21:43 +00:00
examples Move llvm/Support/IRBuilder.h -> llvm/IRBuilder.h 2012-06-29 12:38:19 +00:00
include Refactor Record* by-ID comparator to Record.h 2012-09-19 01:47:00 +00:00
lib CodeGenPrep: turn lookup tables into switches for some targets. 2012-09-19 07:48:16 +00:00
projects Enable recursing into the compiler-rt projcet with the CMake build. 2012-08-29 00:38:02 +00:00
runtime libprofile: [CMake] Let libprofile_rt be not loadable_module but shared library. Autoconf's one does so. 2012-08-29 00:37:51 +00:00
test CodeGenPrep: turn lookup tables into switches for some targets. 2012-09-19 07:48:16 +00:00
tools Silence -Wnon-virtual-dtor in llvm-stress. 2012-09-19 05:08:30 +00:00
unittests Fix includes of llvm files that used angle brackets. 2012-09-15 18:45:38 +00:00
utils Remove code for setting the VEX L-bit as a function of operand size from the code emitters and the disassembler table builder. Fix a couple instructions that were still missing VEX_L. 2012-09-19 06:37:45 +00:00
.gitignore Ignore the documentation-suggested location for compile_commands.json 2012-08-21 19:23:30 +00:00
CMakeLists.txt enable cross compilation with cmake 2012-08-20 19:56:52 +00:00
CODE_OWNERS.TXT Add the list of code owners to the top level of the LLVM source tree to 2012-07-26 08:04:09 +00:00
configure Temporarily revert this to bring back the bots. 2012-08-28 01:17:46 +00:00
CREDITS.TXT Add IRC handle. 2012-09-11 07:50:40 +00:00
LICENSE.TXT Add YAML parser to Support. 2012-04-03 23:09:22 +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 darwin/cross-build: Unset SDKROOT when building BuildTools. 2012-08-22 22:01:01 +00:00
Makefile.common [docs] Remove unsupported references to ExtraSource variable. 2012-05-15 21:32:27 +00:00
Makefile.config.in Temporarily revert this to bring back the bots. 2012-08-28 01:17:46 +00:00
Makefile.rules Temporarily revert this to bring back the bots. 2012-08-28 01:17:46 +00:00
README.txt test commit 2012-07-11 17:34:12 +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.