Fork of llvm with experimental commits and workarounds for RPCS3
Go to file
Chris Lattner a30946c576 In SDISel, for targets that support FORMAL_ARGUMENTS nodes, lower this
node as soon as we create it in SDISel.  Previously we would lower it in
legalize.  The problem with this is that it only exposes the argument
loads implied by FORMAL_ARGUMENTs after legalize, so that only dag combine 2
can hack on them.  This causes us to miss some optimizations because 
datatype expansion also happens here.

Exposing the loads early allows us to do optimizations on them.  For example
we now compile arg-cast.ll to:

_foo:
	movl	$2147483647, %eax
	andl	8(%esp), %eax
	ret

where we previously produced:

_foo:
	subl	$12, %esp
	movsd	16(%esp), %xmm0
	movsd	%xmm0, (%esp)
	movl	$2147483647, %eax
	andl	4(%esp), %eax
	addl	$12, %esp
	ret

It might also make sense to do this for ISD::CALL nodes, which have implicit
stores on many targets.

llvm-svn: 47054
2008-02-13 07:39:09 +00:00
autoconf Make the check for GCC version more robust, fix shared library 2008-02-05 19:43:40 +00:00
bindings Modify Makefile.rules to allow makefiles to prepend to C.Flags and 2008-01-06 21:54:35 +00:00
docs Note that these instructions are for x86-32 linux 2008-02-12 21:40:21 +00:00
examples remove attributions from examples. 2007-12-29 20:37:57 +00:00
include Initial support for copy elimination by commuting its definition MI. 2008-02-13 03:01:43 +00:00
lib In SDISel, for targets that support FORMAL_ARGUMENTS nodes, lower this 2008-02-13 07:39:09 +00:00
projects remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
runtime Fixing the stack walker. 2008-01-24 05:16:36 +00:00
test In SDISel, for targets that support FORMAL_ARGUMENTS nodes, lower this 2008-02-13 07:39:09 +00:00
tools Begin setting features for target based on target triple string. 2008-02-07 22:32:50 +00:00
utils Remove dead code. 2008-02-12 18:20:50 +00:00
website Prepare for "core" website. 2007-08-03 05:43:35 +00:00
win32 Rename MRegisterInfo to TargetRegisterInfo. 2008-02-10 18:45:23 +00:00
Xcode Rename MRegisterInfo to TargetRegisterInfo. 2008-02-10 18:45:23 +00:00
build-for-llvm-top.sh Allow the configure options to be set according to the llvm-top options. 2007-08-31 19:53:42 +00:00
configure regenerate 2008-02-05 19:43:53 +00:00
CREDITS.TXT Update credits. 2007-12-11 09:32:07 +00:00
LICENSE.TXT scoped_ptr.h was removed. 2008-02-09 22:50:06 +00:00
llvm.spec.in * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
Makefile remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
Makefile.common remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
Makefile.config.in improve compatibility with mingw, patch by Alain Frisch 2008-01-15 22:50:50 +00:00
Makefile.rules Make the check for GCC version more robust, fix shared library 2008-02-05 19:43:40 +00:00
ModuleInfo.txt Update to include clean and install commands. 2007-07-20 20:54:41 +00:00
README.txt test 2007-04-20 20:49:25 +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.