[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Introducing Jitgen
From: |
Ludovic Courtès |
Subject: |
Re: Introducing Jitgen |
Date: |
Fri, 10 Dec 2010 10:09:14 +0100 |
User-agent: |
Gnus/5.110011 (No Gnus v0.11) Emacs/23.2 (gnu/linux) |
Hello!
Better late than never...
Noah Lavine <address@hidden> writes:
[...]
> The goal of Jitgen is to generate both of these from the following
> instructions:
>
> '((ip <- ip + ipup)
> (tmp1 <- fp - spup)
> (tmp2 <- sp - tmp1)
> (tmp3 <- tmp2 == (n_val & 0x7))
> (branch-if tmp3 good_path)
> (store-relative ipp 0 ip)
> (store-relative spp 0 sp)
> (store-relative fpp 0 fp)
> (return jit_return_wrong_num_args)
> (label good_path)
> (sp <- sp + spup)
> (store-relative sp 0 SCM_UNDEFINED)
> )
Excellent!
The challenge will be to see if it’s sufficiently expressive to express
all the actual VM instructions, and allows the generated code to be
about the same as the hand-written one.
> My biggest question is, is this something that you would be interested
> in having in Guile?
I think so, yes. Not in 2.0, I guess, but when it starts stabilizing it
could go into a branch.
> If so, then also what do you think of the code style and interfaces,
> and do you have any other feedback?
The code style looks OK to me.
This approach raises bootstrapping issues, or semi-issues. For
instance, tarballs could come with all the pre-generated C files
containing the VM instructions, but we may also have to check them in.
That’s how psyntax bootstrapping is handled already, so it’s probably
OK.
Thanks,
Ludo’.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: Introducing Jitgen,
Ludovic Courtès <=