[LLVMdev] Removing -tailcallopt?

Evan Cheng evan.cheng at apple.com
Sat Feb 6 01:17:48 PST 2010

On Feb 5, 2010, at 9:03 PM, Jeffrey Yasskin wrote:

> Thanks for improving this! Since no good deed can go unpunished, could
> you also update the LangRef and codegen documents to describe the new
> state of the world? It might also be nice to mention there that tail

I plan to do this part before 2.7.

> calls can be needed for correctness in addition to performance and how
> users can guarantee that a call will be transformed, since both if us
> have forgotten recently. I can take a stab at the second one if you
> don't have time.

I don't really know enough about how TCO is used by Pure, Haskell, etc. So if you could write this part, I'd appreciate it.


> Thanks,
> Jeffrey
> On Friday, February 5, 2010, Evan Cheng <evan.cheng at apple.com> wrote:
>> Hi all,
>> I've added tail call optimization to x86. This is different from what -tailcallopt does, which forces fastcc function to be tail callable. My changes detect opportunities to do tail call without having to change the ABI.
>> I've looked at the codegen of -tailcallopt and it doesn't look all that good. Running it as a llcbeta option shows it significantly pessimize code in most cases.
>> As far as I can tell only PPC and  X86 targets are supporting this option. Does anyone actually using it?  I'd prefer to just remove it to clean up the implementation if no one has any objections.
>> Evan
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

More information about the llvm-dev mailing list