apparently tailcalls are better on darwin/x86-64 than on linux?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119947 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-11-21 18:59:20 +00:00
parent dd061b2854
commit 8bc1e45295

View File

@ -895,6 +895,24 @@ compare:
//===---------------------------------------------------------------------===//
Linux is missing some basic tail call support:
#include <math.h>
double foo(double a) { return sin(a); }
This compiles into this on x86-64 Linux (but not darwin):
foo:
subq $8, %rsp
call sin
addq $8, %rsp
ret
vs:
foo:
jmp sin
//===---------------------------------------------------------------------===//
Tail call optimization improvements: Tail call optimization currently
pushes all arguments on the top of the stack (their normal place for
non-tail call optimized calls) that source from the callers arguments