llvm-6502/lib
Chris Lattner 3bd39d4ca8 Implement some dag combines that allow doing fneg/fabs/fcopysign in integer
registers if used by a bitconvert or using a bitconvert.  This allows us to
avoid constant pool loads and use cheaper integer instructions when the
values come from or end up in integer regs anyway.  For example, we now 
compile CodeGen/X86/fp-in-intregs.ll to:

_test1:
	movl	$2147483648, %eax
	xorl	4(%esp), %eax
	ret
_test2:
	movl	$1065353216, %eax
	orl	4(%esp), %eax
	andl	$3212836864, %eax
	ret

Instead of:
_test1:
	movss	4(%esp), %xmm0
	xorps	LCPI2_0, %xmm0
	movd	%xmm0, %eax
	ret
_test2:
	movss	4(%esp), %xmm0
	andps	LCPI3_0, %xmm0
	movss	LCPI3_1, %xmm1
	andps	LCPI3_2, %xmm1
	orps	%xmm0, %xmm1
	movd	%xmm1, %eax
	ret

bitconverts can happen due to various calling conventions that require
fp values to passed in integer regs in some cases, e.g. when returning
a complex.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46414 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-27 17:42:27 +00:00
..
Analysis getUnderlyingObject can return null, handle this. 2008-01-24 19:07:10 +00:00
Archive Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
AsmParser If there are attributes on the varargs part of a 2008-01-11 21:23:39 +00:00
Bitcode Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
CodeGen Implement some dag combines that allow doing fneg/fabs/fcopysign in integer 2008-01-27 17:42:27 +00:00
Debugger Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
ExecutionEngine JITEmitter.cpp was trying to sync the icache for function stubs, but 2008-01-25 16:41:09 +00:00
Linker Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
Support Added FoldingSet style 'profiling' support for APSInt. 2008-01-19 04:31:12 +00:00
System Fix potential buffer overflow 2008-01-24 01:20:48 +00:00
Target add a note 2008-01-27 07:31:41 +00:00
Transforms The CorrelatedExpressionElimination pass is known to be buggy. Remove it. 2008-01-27 06:11:41 +00:00
VMCore Add hasByValAttr() and hasNoAliasAttr() methods to the Argument class. 2008-01-24 17:47:11 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00