guile-devel
[Top][All Lists]
Advanced

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

Re: Register VM WIP


From: Andy Wingo
Subject: Re: Register VM WIP
Date: Wed, 16 May 2012 17:01:40 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux)

Hi Stefan,

On Fri 11 May 2012 22:29, Stefan Israelsson Tampe <address@hidden> writes:

> 1. What about growing stacks any coments if they will be easier to manage
> for this setup. Can one copy the C stack logic?

Having a fixed-size frame means that it's easier to have disjoint
stacks, since a register VM addresses operands relative to the frame
pointer and not the stack pointer.  I hope to be able to decrease our
default stack size, and allow it instead to grow dynamically.

> 2. Is there an instruction that does what call does but can be used for tail 
> call's
> when it needs it e.g. the code
>  for (n = 0; n < nargs; n++)
>         LOCAL_SET (n, old_fp[ip[4 + n]]);
> that is missing for the tail code

This is another advantage of wip-rtl.  In it, the compiler is
responsible for shuffling tail arguments.  It can do a parallel move
possibly without shuffling args to the top of the stack.  Then tail-call
just sets a new procedure and jumps to its entry.

> 3. I would appriciate if the frame is always below say 256 SCM:s of the fp 
> stack limit
> that way when preparing tail calling one doesn't usally need to check if the 
> argument fit's
> when issuing a tail call.

See above :)

> 4. I think the logic code hook I recently investigated could easily fit into 
> this VM engine with
> using similar techniques as I described in previous mails.

I'm still working back through the mails; remind me again if it seems I
overlooked this mail.

Cheers,

Andy
-- 
http://wingolog.org/



reply via email to

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