guile-devel
[Top][All Lists]
Advanced

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

GLIL->C compilation


From: Ludovic Courtès
Subject: GLIL->C compilation
Date: Sat, 20 Nov 2010 00:11:16 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux)

Hi,

Stefan Israelsson Tampe <address@hidden> writes:

> #include "cfkn.h"
> #define LOCAL_REF(i)     fp[i]
> #define LOCAL_SET(i,v)   fp[i] = (v)
> void cfkn3676(SCM *fp, SCM **spp)
> {
>  /* setup of environment */
>  SCM *objects, *free, program, *sp, sss[100];
>  sp = sss;
>  program = fp[-1];
>  objects = SCM_I_VECTOR_WELTS (SCM_PROGRAM_OBJTABLE (program));    
>  free    = SCM_PROGRAM_FREE_VARIABLES(program);
>  /* compiled section */
>  LCASE3666:
>
>
> goto L3668;
> LCASE3665:
> sp++; *sp = LOCAL_REF(1);
> sp++; *sp = SCM_I_MAKINUM(0);
> sp-=2; if(!scm_is_eq(sp[1],sp[2])) goto L3669;
> sp++; *sp = LOCAL_REF(2);

[...]

Comparing this to the VM’s bytecode interpreter should show the overhead
incurred by instruction dispatch.

Did you try to measure this?  That’d be interesting.

Thanks,
Ludo’.




reply via email to

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