On Mon, 2010-07-05 at 21:15 +0200, Mathieu Suen wrote:
Hi Bryce,
I would like to know if you can provide us a list a papers on Jit. Anything that inspire/explain what your doing in Exupery.
http://wiki.squeak.org/squeak/5792
The short answer is it's an attempt build on the insights from Holzle's work on Self compilation and allow type feedback to be used with solid optimization.
Good inlining and type information through type feedback opens the door to serious optimization but standard type feedback VMs rely on very fast compilers which don't have time to optimize well.
And also what do you think of stack base VM vs. register base VM? I am asking because in smalltalk I am wondering if it worth register base VM.
My view is the bytecode should be stack based but the JIT register based. It's easy to do very good register allocation across trees (i.e. stack based).
Trees are a convenient structure to work with and a stack based bytecode is just a linear representation of a tree.
If you're optimizing heavily it doesn't matter too much what representation you choose as you'll transform it through several representations during compilation. If you're optimizing quickly and simply trees are convenient.
Bryce