Re-enable x86 tail call optimization.
authorEvan Cheng <evan.cheng@apple.com>
Thu, 4 Feb 2010 06:47:24 +0000 (06:47 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 4 Feb 2010 06:47:24 +0000 (06:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95295 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/tailcall2.ll

index a44afb502c6dc3170b6081186a3c7b78dc8bcfdb..40f720b168b8f96549dc6e3930ab78c7e81330c2 100644 (file)
@@ -52,7 +52,6 @@ using namespace llvm;
 
 STATISTIC(NumTailCalls, "Number of tail calls");
 
-static cl::opt<unsigned> TailCallLimit("tailcall-limit", cl::init(0));
 static cl::opt<bool>
 DisableMMX("disable-mmx", cl::Hidden, cl::desc("Disable use of MMX"));
 
@@ -2271,8 +2270,6 @@ X86TargetLowering::IsEligibleForTailCallOptimization(SDValue Callee,
 
   // Look for obvious safe cases to perform tail call optimization that does not
   // requite ABI changes. This is what gcc calls sibcall.
-  if (NumTailCalls >= TailCallLimit)
-    return false;
 
   // Do not tail call optimize vararg calls for now.
   if (isVarArg)
index b35fc4b5a58b361952a9023c4e021741fcedf3b8..46fb7c3ef1926a7f022c9907ae5ad3a825cd924a 100644 (file)
@@ -1,6 +1,5 @@
 ; RUN: llc < %s -march=x86    -asm-verbose=false | FileCheck %s -check-prefix=32
 ; RUN: llc < %s -march=x86-64 -asm-verbose=false | FileCheck %s -check-prefix=64
-; XFAIL: *
 
 define void @t1(i32 %x) nounwind ssp {
 entry:
@@ -107,10 +106,10 @@ declare i32 @bar2(i32, i32, i32)
 define signext i16 @t8() nounwind ssp {
 entry:
 ; 32: t8:
-; 32: jmp {{_?}}bar3
+; 32: call {{_?}}bar3
 
 ; 64: t8:
-; 64: jmp {{_?}}bar3
+; 64: callq {{_?}}bar3
   %0 = tail call signext i16 @bar3() nounwind      ; <i16> [#uses=1]
   ret i16 %0
 }