guile-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 01/10] inline vm-engine.h into vm-engine.c


From: Ludovic Courtès
Subject: Re: [PATCH 01/10] inline vm-engine.h into vm-engine.c
Date: Thu, 23 May 2013 23:28:23 +0200
User-agent: Gnus/5.130007 (Ma Gnus v0.7) Emacs/24.3 (gnu/linux)

Andy Wingo <address@hidden> skribis:

> * libguile/vm-engine.h:
> * libguile/vm-engine.c: Fold vm-engine.h into vm-engine.c.
>
> * libguile/Makefile.am: Adapt.

OK.

> * libguile/vm-engine.c (CONS): Remove.  Callers should use scm_cons
>   instead, syncing registers beforehand.
>   (POP_LIST): Adapt, only synchronizing once.
>   (POP_LIST_MARK, POP_CONS_MARK): Remove unused macros.
>
> * libguile/vm-i-scheme.c (cons):
> * libguile/vm-i-system.c (push-rest, bind-rest): Adapt.

OK.

> -/* A fast CONS.  This has to be fast since its used, for instance, by
> -   POP_LIST when fetching a function's argument list.  Note: `scm_cell' is an
> -   inlined function in Guile 1.7.  Unfortunately, it calls
> -   `scm_gc_for_newcell ()' which is _not_ inlined and allocated cells on the
> -   heap.  XXX  */

Prehistory!

> * libguile/vm-engine.c: Some very minor cleanups: indenting, use of
>   VM_ASSERT, commenting.

OK.

> * libguile/vm-engine.c: Remove the ability for the VM to check object
>   access, free variable access, and the ip.  They were off by default.
>   Since they will be different in the RTL VM, their presence is just
>   making things confusing.
>
> * libguile/vm.c: Remove corresponding error helpers.

OK.

> * libguile/vm-engine.c: Remove the register assignments inherited from
>   the 1990s.  GCC does seem to allocate reasonably on systems with
>   enough registers (e.g. x86-64), and on system with too few (x86-32) we
>   disabled manual allocation.  Anyway this code was never tested, so
>   it's better to leave the compiler to do its own thing, until proven
>   otherwise.  Also in the RTL VM we don't need to allocate a register to
>   the SP, because it isn't accessed as much.

It was not “never tested”, but yeah.  :-)

Setting JT_REG (which this patch keeps) does have an impact:

  http://lists.gnu.org/archive/html/guile-devel/2011-07/msg00027.html

Also s/x86-32/IA32/, to avoid confusion with x32 (what a mess!).

Ludo’.




reply via email to

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