[Mono-devel-list] tailcall support in mcs

Michal Moskal malekith at pld-linux.org
Mon Sep 15 04:32:24 EDT 2003


On Mon, Sep 15, 2003 at 01:00:18PM +1000, Lloyd Dupont wrote:
> ho, I see, thanks for that explanation :-)
> 
> If I understand you it's something the user (developer) will never see as it
> will done behind the scene by the compiler, is it ?

You won't see if it's done or not, unless you relay on it and are hit by
stack overflow. CIL support tail calls. I believe tail calls can improve
performance of C# too (basically you can use tail call when you do
"return some_other_function(...);" in C#).

Maybe I'm wrong but can the JIT enginge optimize sequence of
instructions:

call foo  // or callvirt
ret

into:

tail.call foo ?

That would fix the problem even better then mcs emitting tail calls.

-- 
: Michal Moskal :: http://www.kernel.pl/~malekith : GCS {C,UL}++++$ a? !tv
: When in doubt, use brute force. -- Ken Thompson : {E-,w}-- {b++,e}>+++ h




More information about the Mono-devel-list mailing list