![](https://secure.gravatar.com/avatar/bfc96d2a02d9113edb992eb96c205c5a.jpg?s=120&d=mm&r=g)
On Wed, Sep 19, 2012 at 11:38 AM, Armin Rigo <arigo@tunes.org> wrote:
Hi Carl Friedrich,
On Tue, Sep 18, 2012 at 10:00 PM, Carl Friedrich Bolz <cfbolz@gmx.de> wrote:
2. More fundamentally (and this is where I think you have missed a detail about the JIT so far) the JIT ist trace-based. The JIT backends cannot deal with arbitrary control flow, only with linear traces.
You missed an intermediate solution: have the JIT's blackhole interpreter run the jitcodes before warm-up. We don't have to actually JIT-compile everything before being able to run it, which would indeed completely kill warm-up times. This would give a (slow but not unreasonably slow) solution: a very general "RPython interpreter and JIT-compiler" that would input and run some set of serialized jitcodes --- similar to a Java VM, actually. (There are tons of minor issues ahead, like all the stranger operations that don't have a jitcode equivalent so far, e.g. working on "long double" or "long long long" or weakrefs...)
Note that in order to make the "RPython interpreter and JIT-compiler" itself, we would need to translate regular RPython code --- which means it doesn't help at all if the goal is to port RPython to non-C translation targets. It's merely a cool hack, and maybe a debugging help to trade fast translation time for a slower result.
A bientôt,
Armin. _______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev
I guess this is what pypyjit.py does, more or less. You still need the blackhole interpreter to run in something