From: Evan Cheng Date: Thu, 4 Feb 2010 06:47:24 +0000 (+0000) Subject: Re-enable x86 tail call optimization. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1f2fda97b191e480c133989bd31ef87ab31dcba5;p=oota-llvm.git Re-enable x86 tail call optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95295 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index a44afb502c6..40f720b168b 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -52,7 +52,6 @@ using namespace llvm; STATISTIC(NumTailCalls, "Number of tail calls"); -static cl::opt TailCallLimit("tailcall-limit", cl::init(0)); static cl::opt 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) diff --git a/test/CodeGen/X86/tailcall2.ll b/test/CodeGen/X86/tailcall2.ll index b35fc4b5a58..46fb7c3ef19 100644 --- a/test/CodeGen/X86/tailcall2.ll +++ b/test/CodeGen/X86/tailcall2.ll @@ -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 ; [#uses=1] ret i16 %0 }