[LLVMdev] Tail Call Optimisation
Simon Harris
haruki.zaemon at gmail.com
Sun Jan 3 19:33:06 PST 2010
On 04/01/2010, at 3:01 PM, Jon Harrop wrote:
> On Monday 04 January 2010 01:12:55 Simon Harris wrote:
>> I'm investigating "improving" the TCO facilities in LLVM to provide for
>> "hard" tail calls. Specifically, this would involve extending the existing
>> implementation to discard the stack frame for the caller before executing
>> the callee. I would then like to extend this further by performing hard
>> tail calls on _all_ returning calls that no longer require the stack frame.
>>
>> A colleague of mine and I have looked into it and prima facie believe that
>> it's entirely feasible. I wanted to ask the list if there was any interest,
>> any objections, and of course, anything pointers/tips that may prove
>> useful.
>
> I am certainly interested in tail calls because my HLVM project relies upon
> LLVM's tail call elimination. However, I do not understand what tail calls
> LLVM is not currently eliminating that you plan to eliminate?
Mutual recursion for a start:
def a(n)
n <= 0 ? "DONE" : b(n - 1)
end
def b(n)
n <= 0 ? "DONE" : a(n - 1)
end
a(10000000)
Boom!
--
Simon Harris
w: http://www.harukizaemon.com/
e: haruki.zaemon at gmail.com
m: +61 417 505 611
t: @haruki_zaemon
More information about the llvm-dev
mailing list