Fork of llvm with experimental commits and workarounds for RPCS3
Go to file
Evan Cheng a1940f03f6 Thumb2 IT blocks are fairly expensive. When there are multiple selects using
the same condition, it's important to make sure they are scheduled together
to avoid forming multiple IT blocks. I'm adding a pre-regalloc pass that forms
IT blocks early (by re-scheduling instructions and split basic blocks) to
attempt to fix this. This is not turned on by default since I am not sure this
is the right fix.

Another issue is llvm selects are modeled as two-address conditional moves.
This can be very bad when the copies before the conditional moves are not
coalesced away. Teach IT formation pass to move the copies above the IT block
(when legal) to avoid breaking the IT block.

llvm-svn: 105669
2010-06-09 01:46:50 +00:00
autoconf Fix a spello affecting platforms where the configure check fails. 2010-06-01 16:22:27 +00:00
bindings add attributes and module level asm to the ocaml bindings, 2010-04-10 17:52:58 +00:00
cmake Tell Valgrind when we modify already-executed machine code so it knows 2010-03-15 04:57:55 +00:00
docs Teach tablegen to support 'defm' inside multiclasses. 2010-06-05 02:11:52 +00:00
examples Remove the -enable-sjlj-eh option, which doesn't do anything. 2010-05-02 15:36:26 +00:00
include Reapply r105521, this time appending "LLU" to 64 bit 2010-06-08 22:51:23 +00:00
lib Thumb2 IT blocks are fairly expensive. When there are multiple selects using 2010-06-09 01:46:50 +00:00
projects Testing subversion commit access 2010-02-23 15:11:17 +00:00
runtime Delete a blank line. 2010-04-16 13:32:55 +00:00
test Reapply r105521, this time appending "LLU" to 64 bit 2010-06-08 22:51:23 +00:00
tools Plug a leak in the non-error case by removing one level of indirection. 2010-06-07 21:42:19 +00:00
unittests ADT: Add DAGDeltaAlgorithm, which is a DAG minimization algorithm built on top of the standard 'delta debugging' algorithm. 2010-06-08 16:21:22 +00:00
utils Handle instructions which need to be #defines for the purpose of capturing constant arguments 2010-06-09 01:09:00 +00:00
website
build-for-llvm-top.sh Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
CMakeLists.txt CMake: Add options for using static runtime on MSVC++ build. 2010-03-18 13:52:05 +00:00
configure Fix a spello affecting platforms where the configure check fails. 2010-06-01 16:22:27 +00:00
CREDITS.TXT Adding the MicroBlaze backend. 2010-02-23 19:15:24 +00:00
LICENSE.TXT 2010 is upon us. 2010-01-09 18:40:31 +00:00
llvm.spec.in
Makefile Update for CIndex rename. 2010-04-30 23:36:47 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Delete unused variables (that weren't even getting expanded). 2010-06-01 17:26:14 +00:00
Makefile.rules Makefiles: Teach LLVM's recursive makefile descent to update objdir Makefiles if 2010-06-08 20:10:13 +00:00
ModuleInfo.txt Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
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.