llvm-project/llvm/lib
Chris Lattner ce5f841bb5 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

llvm-svn: 48108
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 Add an unwind_to field to basic blocks, making them Users instead of Values. 2008-03-02 02:48:09 +00:00
CodeGen fp_round's produced by getCopyFromParts should always be exact, because 2008-03-09 09:38:46 +00:00
Debugger Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
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 Stub out a Path::GetMainExecutable call to find the path to the 2008-03-03 02:55:43 +00:00
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 remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00