llvm-6502/lib/Transforms
Chris Lattner 10603e0c84 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)...



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45886 91177308-0d34-0410-b5e6-96231b3b80d8
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