guile-devel
[Top][All Lists]
Advanced

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

Re: Experimental JIT for Guile (???!)


From: Lluís Vilanova
Subject: Re: Experimental JIT for Guile (???!)
Date: Tue, 04 Oct 2016 11:57:54 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Ludovic Courtès writes:

> Hello!
> Lluís Vilanova <address@hidden> skribis:

>> Still, this mail made me think if optimizations based on "tracing" (or any 
>> kind
>> of runtime-based profiling) could be nested. Then you could start by applying
>> the existing compiler optimizations, later generate a procedure/trace version
>> dispatcher with unboxed operations (you can add new versions as they become
>> hot), and only at the end generate native code.

> I’m not sure what you mean by “nested”.  What tracing JITs and Nash do
> is collect execution traces, and trigger native code compilation once a
> given segment of code (a loop body) has been executed a number of times.
> The generated code is specialized according to that trace.

By nesting I mean applying different optimizations at different thresholds, but
all based on tracing the executed code. Aka, the hotter it gets, the more you
try to optimize it.

Also, is it absolutely necessary to implement the tracing on the VM? Can't it be
done by adding a new opcode to the VM to compute the statistics? Then you can
add that opcode to any region of code, like procedure or loop iteration
prologues. Also, then you can do so from a higher-level language that does have
the concept of loops, instead of inferring them from jump offsets.


Cheers,
  Lluis



reply via email to

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