Bruno Haible | 22 Jan 23:46 2008

Re: JIT with lightning

Reini Urban wrote:
> | So I'm also looking into JIT'ing and compiling clisp bytecode with the
> | GNU lightning library.
> |
> |   (i386, sparc and ppc only)

I would also look into the libjit used by the GNU pnet project.

The main difference between lightning and libjit appears to be that libjit
is higher level:
  - lightning is some kind of portable in-memory assembler; it leaves you
    full control over registers.
  - libjit also contains register allocation and a connection to the type

(Apologies if you already considered it.)

> | Does the CLISP VM uses only stack vars, no virtual registers? I've seen
> | none. answers this: The main virtual
registers are mv_count and value1. If you look into interpret_bytecode_,
you will see: There is also the "private_SP" area, used for creating
particular kinds of stack frames. And the closure being currently executed
also needs to be stored somewhere; IIRC this is used by the mechanism
that throws and catches conditions, and also by generic functions dispatch


This email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.