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"));
// 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)
; 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: