lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

The trouble is that you can't do that with LLVM.

It does support TCO, though, at the expense of easy C interop (you
have to use incompatible calling conventions which breaks the ABI). As
long as you don't want to mix C and Lua/Ravi code, FFI-style, you
should be fine.

On Sat, Mar 21, 2015 at 4:23 PM, Coda Highland <> wrote:
> On Fri, Mar 20, 2015 at 3:25 PM, Dibyendu Majumdar
> <> wrote:
>> On 20 March 2015 at 22:16, Doug Currie <> wrote:
>>>> I haven't yet figured out how to properly implement OP_TAILCALL in a
>>>> JITed function.
>>> The usual approach is to emit code to pop the stack frame and convert the
>>> tail call to a jump.
>> In the recursive case, yes, but Lua also uses tail calls for
>> non-recursive scenarios. For these a different function may be called
>> so it is not possible to handle this in a JITed function - without
>> replacing the function being executed as well.
>> Regards
> The technique still applies to the non-recursive case -- you still
> clean up the stack frame, push on the return values, and jump.
> /s/ Adam