[Top][All Lists]

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

Re: native compilers

From: Stefan Israelsson Tampe
Subject: Re: native compilers
Date: Mon, 21 Jan 2013 19:43:50 +0100

Yeah, this is pretty crazy stuff. But crazy fun stuff!

1. Anyway I think that I could just do away with two table lookups to reach both
c-function pointers and the goto gosub stuff generated from assembler.

2. A think more work is needed of the extra layer to allow for correct continuation

3. Would be good if we could just pass a pointer to the rtl-vm local data in stead of copying 
them into a third vm.

4. Good register handling is needed, right now this is the most simplest approach you can have
towards native / JIT compiling e.g. take the rtl code and transform it directly to rtl code. you do get
faster code but it would be nice to actually take advantage of hardware regiosters. And for that
we would need ideally to compile from something else than rtl bytecode. Anyway I could imagine an 
intrmediate state of guile where we took this simplistic approach to compiling - it should at least 
be very fast to compile the code and if we look at it as some speedier VM it's actually not a bad idea 
appart from beeing hard to maintain with respect to hardware architecture.

5. To simplify further we could design most of the meaty stuff in C-code and restrict the target registers
for this code and hook everything together with some basic assembler. Then I don't expect the assembler
work to be that hefty.

6. As Noha later on in the list point out, there is already JIT engines out there that can work with this without the
extra overhead. But I'm so in love with assembler in scheme that I couldn't resist hacking this together.


On Mon, Jan 21, 2013 at 5:53 PM, Andy Wingo <address@hidden> wrote:
On Sat 22 Sep 2012 23:28, Stefan Israelsson Tampe <address@hidden> writes:

> I've now coded two version of native compilers for x86-64 linux
> compiling either the old guile-2.0 VM language or guile-2.2 RTL VM
> language.

This is pretty crazy and wonderful stuff, Stefan.

looks really promising.

I guess I need to consolidate the RTL branch now, and we need to make
sure that we can plug in a JIT.  I don't want to incorporate all of this
code at once, so ideally we can make it so that you can load your code
as a module and Guile will have the needed hooks to run JITted code if
it is there.

Excellent hacking!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]