llvm-6502/lib
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
..
Analysis Add Hybrid Cycle Detection to Andersen's analysis. 2008-03-05 19:31:47 +00:00
Archive Add alias with non-external aliasee to the list of exported symbols of the library. 2008-03-04 20:15:35 +00:00
AsmParser regenerate. 2008-03-03 18:58:47 +00:00
Bitcode
CodeGen fp_round's produced by getCopyFromParts should always be exact, because 2008-03-09 09:38:46 +00:00
Debugger
ExecutionEngine Load the symbols first so that the interpreter constructor can find them when 2008-03-08 02:49:45 +00:00
Linker Clarify some important bits 2008-03-07 18:34:50 +00:00
Support Fix a typo. It's causing consumer-typeset to miscompile. Perhaps more. 2008-03-07 22:39:49 +00:00
System
Target teach X86InstrInfo::copyRegToReg how to copy into ST(0) from 2008-03-09 09:15:31 +00:00
Transforms Don't eliminate blocks that are only reachable by unwind_to. 2008-03-09 08:50:23 +00:00
VMCore Two things. Preserve the unwind_to when splitting a BB. 2008-03-09 05:04:48 +00:00
Makefile