guile-devel
[Top][All Lists]
Advanced

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

Re: GLIL->C compilation


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

Stefan Israelsson Tampe <address@hidden> writes:

> On Saturday, November 20, 2010 12:11:16 am Ludovic Courtès wrote:
>> 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’.
>
> Yes on one of my machine one loop takes about 6ns for the compiled one and 
> about 50ns for the bytcode, say a factor of 7-10 for simple tasks, but 
> remember
> this is for rather trivial work.

Woow, I didn’t expect so much.

Ludo’.




reply via email to

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