llvm-6502/lib/CodeGen/SelectionDAG
Chris Lattner 4468c1fd1c fp_round's produced by getCopyFromParts should always be exact, because
they are produced by calls (which are known exact) and by cross block copies
which are known to be produced by extends.

This improves:

define double @test2() {
	%tmp85 = call double asm sideeffect "fld0", "={st(0)}"()
	ret double %tmp85
}

from:

_test2:
	subl	$20, %esp
	# InlineAsm Start
	fld0
	# InlineAsm End
	fstpl	8(%esp)
	movsd	8(%esp), %xmm0
	movsd	%xmm0, (%esp)
	fldl	(%esp)
	addl	$20, %esp
	#FP_REG_KILL
	ret

to:

_test2:
	# InlineAsm Start
	fld0
	# InlineAsm End
	#FP_REG_KILL
	ret

by avoiding a f64 <-> f80 trip



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48108 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 09:38:46 +00:00
..
CallingConvLower.cpp
DAGCombiner.cpp Rename isOperand() to isOperandOf() (and other similar methods). It always confuses me. 2008-03-04 00:41:45 +00:00
LegalizeDAG.cpp Fix two problems in SelectionDAGLegalize::ExpandBUILD_VECTOR's handling 2008-03-09 00:29:42 +00:00
LegalizeTypes.cpp LegalizeTypes support for EXTRACT_VECTOR_ELT. The 2008-02-27 13:34:40 +00:00
LegalizeTypes.h LegalizeTypes support for EXTRACT_VECTOR_ELT. The 2008-02-27 13:34:40 +00:00
LegalizeTypesExpand.cpp Codegen support for i128 UINT_TO_FP. This just fixes a 2008-03-05 02:07:31 +00:00
LegalizeTypesPromote.cpp LegalizeTypes support for EXTRACT_VECTOR_ELT. The 2008-02-27 13:34:40 +00:00
LegalizeTypesScalarize.cpp LegalizeTypes support for EXTRACT_VECTOR_ELT. The 2008-02-27 13:34:40 +00:00
LegalizeTypesSplit.cpp Add a FIXME about the VECTOR_SHUFFLE evil hack. 2008-02-27 17:39:13 +00:00
Makefile
ScheduleDAG.cpp teach X86InstrInfo::copyRegToReg how to copy into ST(0) from 2008-03-09 09:15:31 +00:00
ScheduleDAGList.cpp
ScheduleDAGRRList.cpp Rename isOperand() to isOperandOf() (and other similar methods). It always confuses me. 2008-03-04 00:41:45 +00:00
SelectionDAG.cpp Teach SD some vector identities, allowing us to compile vec_set-9 into: 2008-03-08 23:43:36 +00:00
SelectionDAGISel.cpp fp_round's produced by getCopyFromParts should always be exact, because 2008-03-09 09:38:46 +00:00
SelectionDAGPrinter.cpp
TargetLowering.cpp Codegen support for i128 SINT_TO_FP. 2008-03-05 01:08:17 +00:00