[Top][All Lists]
[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’.
Re: The progress of hacking guile and prolog, Andy Wingo, 2010/11/20
Re: The progress of hacking guile and prolog, Stefan Israelsson Tampe, 2010/11/04
Re: The progress of hacking guile and prolog, Stefan Israelsson Tampe, 2010/11/05