Fork of llvm with experimental commits and workarounds for RPCS3
Go to file
Evan Cheng d3713a9b9a Prevent folding of a node with multiple uses if the node already folds a load!
Here is an example where the load ended up being done twice:

%A = global uint 0

uint %test(uint %B, ubyte %C) {
	%tmp = load uint *%A;
	%X = shl uint %tmp, ubyte %C
	%Cv = sub ubyte 32, %C
	%Y = shr uint %B, ubyte %Cv
	%Z = or uint %Y, %X
	store uint %Z, uint* %A
	ret uint %Z
}

==>

	subl $4, %esp
	movl %ebx, (%esp)
	movl 8(%esp), %edx
	movl A, %eax
	movb 12(%esp), %bl
	movb %bl, %cl
	shldl %cl, %edx, %eax
	movb %bl, %cl
	shldl %cl, %edx, A
	movl (%esp), %ebx
	addl $4, %esp
	ret

llvm-svn: 25471
2006-01-20 01:11:03 +00:00
autoconf Make sure that libm is used during config tests so that ceil, floor, and 2006-01-19 08:31:08 +00:00
docs like bswap, the ct* intrinsics require unsigned operands 2006-01-16 22:38:59 +00:00
examples When a function takes a variable number of pointer arguments, with a zero 2005-10-23 04:37:20 +00:00
include/llvm Make sure that libm is used during config tests so that ceil, floor, and 2006-01-19 08:31:08 +00:00
lib ConstantFoldLoadThroughGEPConstantExpr wasn't handling pointers to 2006-01-19 23:53:23 +00:00
projects Fixed Makefile so it does, indeed, build a dynamic library. 2006-01-06 22:51:19 +00:00
runtime Add the remove() function from the C library. 2005-11-28 15:49:15 +00:00
test Add a new testcase for an eliminable cast 2006-01-19 07:39:20 +00:00
tools For PR521: 2006-01-10 03:14:40 +00:00
utils Prevent folding of a node with multiple uses if the node already folds a load! 2006-01-20 01:11:03 +00:00
win32 Visual Studio still has issues with being left out. 2006-01-17 05:13:22 +00:00
Xcode Adding UniqueVector. 2006-01-17 17:29:20 +00:00
.cvsignore Ignore the configure.out file generated by "make reconfigure" 2005-06-18 23:01:25 +00:00
configure Make sure that libm is used during config tests so that ceil, floor, and 2006-01-19 08:31:08 +00:00
CREDITS.TXT Add an entry 2006-01-08 08:25:38 +00:00
LICENSE.TXT Happy New Year, LLVM. 2006-01-03 14:42:06 +00:00
llvm.spec Onward to LLVM-1.6 and beyond! 2005-05-18 20:23:20 +00:00
Makefile For PR614: 2005-08-25 04:59:49 +00:00
Makefile.common Update comments to reflect new variable names. Patch contributed by 2005-02-14 16:02:19 +00:00
Makefile.config.in Implement fix for PR471: 2005-12-21 03:31:53 +00:00
Makefile.rules For PR625: 2005-12-23 22:27:56 +00:00
README.txt Make the text of this file a little more useful. 2004-09-02 22:49:27 +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.