These are legal for tail calls
authorChris Lattner <sabre@nondot.org>
Fri, 6 May 2005 05:59:50 +0000 (05:59 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 6 May 2005 05:59:50 +0000 (05:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21723 91177308-0d34-0410-b5e6-96231b3b80d8

examples/Fibonacci/fibonacci.cpp
examples/HowToUseJIT/HowToUseJIT.cpp

index 2bef63bb15843cc2efe4013737d45bb74c1b7a68..7c24e9e2fc8eeeaabab6156d22a1f64d811be976 100644 (file)
@@ -65,10 +65,13 @@ static Function *CreateFibFunction(Module *M) {
   // create fib(x-1)
   Value *Sub = BinaryOperator::createSub(ArgX, One, "arg", RecurseBB);
   Value *CallFibX1 = new CallInst(FibF, Sub, "fibx1", RecurseBB);
+  CallFibX1->setTailCall(true);
 
   // create fib(x-2)
   Sub = BinaryOperator::createSub(ArgX, Two, "arg", RecurseBB);
   Value *CallFibX2 = new CallInst(FibF, Sub, "fibx2", RecurseBB);
+  CallFibX2->setTailCall(true);
+
 
   // fib(x-1)+fib(x-2)
   Value *Sum = BinaryOperator::createAdd(CallFibX1, CallFibX2,
index 31ea4f454048ccfd38b50728c767e6dc8c730724..192c76dcce1c919dc64d1217fd72a515a4e003de 100644 (file)
@@ -87,7 +87,8 @@ int main() {
   // Pass Ten to the call call:
   std::vector<Value*> Params;
   Params.push_back(Ten);
-  CallInst * Add1CallRes = new CallInst(Add1F, Params, "add1", BB);
+  CallInst *Add1CallRes = new CallInst(Add1F, Params, "add1", BB);
+  Add1CallRes->setTailCall(true);
 
   // Create the return instruction and add it to the basic block.
   new ReturnInst(Add1CallRes, BB);