Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Bruno Haible <bruno <at> clisp.org>
Subject: Re: JIT with lightning
Newsgroups: gmane.lisp.clisp.general
Date: Tuesday 22nd January 2008 22:46:45 UTC (over 8 years ago)
Reini Urban wrote:
> | So I'm also looking into JIT'ing and compiling clisp bytecode with the
> | GNU lightning library.
> |    http://en.wikipedia.org/wiki/GNU_lightning
> |   (i386, sparc and ppc only)

I would also look into the libjit used by the GNU pnet project.
  http://ftp.gnu.org/gnu/dotgnu/pnet/
  http://cvs.savannah.gnu.org/viewvc/libjit/?root=dotgnu-pnet

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
    system.

(Apologies if you already considered it.)

> | Does the CLISP VM uses only stack vars, no virtual registers? I've seen
> | none.

http://clisp.cons.org/impnotes/vm.html
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
code.

Bruno


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
 
CD: 4ms