1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 21:42:54 +02:00
llvm-mirror/lib/Transforms
Chris Lattner a1246ba8ed Teach argpromote to ruthlessly hack small byval structs when it can
get away with it, which exposes opportunities to eliminate the memory
objects entirely.  For example, we now compile byval.ll to:

define internal void @f1(i32 %b.0, i64 %b.1) {
entry:
	%tmp2 = add i32 %b.0, 1		; <i32> [#uses=0]
	ret void
}

define i32 @main() nounwind  {
entry:
	call void @f1( i32 1, i64 2 )
	ret i32 0
}

This seems like it would trigger a lot for code that passes around small
structs (e.g. SDOperand's or _Complex)...

llvm-svn: 45886
2008-01-11 22:31:41 +00:00
..
Hello Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
Instrumentation Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
IPO Teach argpromote to ruthlessly hack small byval structs when it can 2008-01-11 22:31:41 +00:00
Scalar Implement PR1795, an instcombine hack for forming GEPs with integer pointer arithmetic. 2008-01-08 07:23:51 +00:00
Utils When inlining a functino with a byval argument, make an explicit 2008-01-11 06:09:30 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00