[LLVMdev] Tail Call Optimisation

Jon Harrop jon at ffconsultancy.com
Mon Jan 4 03:03:37 PST 2010


On Monday 04 January 2010 05:16:40 Jeffrey Yasskin wrote:
> On Sun, Jan 3, 2010 at 10:50 PM, Jon Harrop <jon at ffconsultancy.com> wrote:
> > LLVM's TCO already handles mutual recursion.
>
> Only for fastcc functions

Yes.

> compiled with -tailcallopt, right?

If you use the compiler, yes.

> http://llvm.org/docs/CodeGenerator.html#tailcallopt
>
> I believe gcc manages to support tail calls in many more cases, and
> this restriction in llvm confuses lots of newcomers. It would be very
> worthwhile if someone wanted to remove it.

That's interesting. What tail calls can be supported without changing the 
calling convention and would it not simply be easier to switch to the fastcc 
convention between internal functions to achieve the same effect from outside 
LLVM? Conversely, if TCO is implemented for the cc convention, what will be 
the point of fastcc?

-- 
Dr Jon Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/?e



More information about the llvm-dev mailing list