diff options
author | Chris Lattner <sabre@nondot.org> | 2008-03-09 09:38:46 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-03-09 09:38:46 +0000 |
commit | 4468c1fd1c3dcc2cca7b881eb9f37f018405d2d9 (patch) | |
tree | f276eba76968f6ef399826ccfef504bcf7248980 /lib/Linker/LinkModules.cpp | |
parent | f30e1cf9b7f96395768e710b4707ecd5587e1185 (diff) |
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
Diffstat (limited to 'lib/Linker/LinkModules.cpp')
0 files changed, 0 insertions, 0 deletions