lua-users home
lua-l archive

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

Robert G. Jakabosky wrote:
> Only LuaJIT was compiled as 
> 32bit code the others are 64bit.  That might not be fair to LuaJIT, but the 
> reason I started this project was to get JIT support on x86_64.  I might do 
> another benchmark run tonight with them all compiled as 32bit code.

I don't think it makes much of a difference here. The additional
registers in 64 bit mode improve the performance only in very
specific cases.

> Also attached is a patch to 'lcoco.c' to add x86_64 assembly coroutine support 
> to LuaCoco.  It saves 9 64bit registers (It might be possible to lower that 
> count, since the assembly code is inlined and the parent function might not 
> use all those registers).

You can't avoid to save all callee-saves, since the grandparent
may use them. And there is an inconsistency: +D forces rdi, but
then you save it. The x64 ABI doesn't require rdi to be saved.

[Just in case: yes, the WIN64 calling conventions are different.
But this code isn't used there.]

> It would be nice to collect together a 
> set of scripts for benchmarking and testing Lua vm implementations.

I've got a comprehensive collection of Lua benchmarks and have
considered packaging them up, but I've never gotten around to it.
Anyway, I proactively reserve the name LuaBench for it. :-)

> Parrot VM has a good set of test scripts for testing the Lua
> implementation that they have.

The tests are rather basic. But since they test small details in
isolation, they are quite useful when writing a new Lua VM. Once
one gets all of them working, running Roberto's testsuite is the
next step. But note that some tests depend on a couple of
implementation details that may differ between VMs.