Make X86TargetLowering::LowerSINT_TO_FP return without creating a dead
authorChris Lattner <sabre@nondot.org>
Wed, 27 Feb 2008 05:57:41 +0000 (05:57 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 27 Feb 2008 05:57:41 +0000 (05:57 +0000)
commitb09916bdfbd7ffdc8fbadb5ee0c0b50567823f46
tree82b26d049ca1b0873011990f2b19c852a663bf65
parent22eedf4eec990f90988af819c034787019440cbd
Make X86TargetLowering::LowerSINT_TO_FP return without creating a dead
stack slot and store if the  SINT_TO_FP is actually legal.  This allows
us to compile:

double a(double b) {return (unsigned)b;}

to:

_a:
cvttsd2siq %xmm0, %rax
movl %eax, %eax
cvtsi2sdq %rax, %xmm0
ret

instead of:

_a:
subq $8, %rsp
cvttsd2siq %xmm0, %rax
movl %eax, %eax
cvtsi2sdq %rax, %xmm0
addq $8, %rsp
ret

crazy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47660 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/README-X86-64.txt
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/x86-64-dead-stack-adjust.ll [new file with mode: 0644]