llvm-project/llvm/test/CodeGen
Chris Lattner a08af08a88 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
..
ARM It's PR1925, not PR1609. 2008-02-06 22:07:17 +00:00
Alpha xfail a test 2007-11-28 05:37:13 +00:00
CBackend CBackend: Implement unaligned load/store. 2008-02-01 21:25:59 +00:00
CellSPU Overhaul Cell SPU's addressing mode internals so that there are now 2008-01-29 02:16:57 +00:00
Generic Crashes LegalizeTypes with "Do not know how to 2008-02-04 18:07:02 +00:00
IA64 Convert .cvsignore files 2007-06-29 16:35:07 +00:00
PowerPC Add testcase for recent legalizer change 2008-02-13 06:48:40 +00:00
SPARC Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
X86 In SDISel, for targets that support FORMAL_ARGUMENTS nodes, lower this 2008-02-13 07:39:09 +00:00