On Jul 5, 2010, at 11:35 PM, Bryce Kampjes wrote:
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.
Link of your papers seems broken.
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.
Thanks for your answer I agree that for the point of view of Jit there is no big deal. But if you stay on the bytecode level then having some #sendArgTemp0: can avoid dispatching the #pushTemp:0 bytecode.
Also have you an idea on what is faster: - Make a small optimization but work throw the tree many time. - Make a big optimization and avoiding tree walk
I guess you have some optimization that can't be done in several tree walk?
Bryce
Exupery mailing list Exupery@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
-- Mathieu
___________________________________________________________________________ Yahoo! Mail r�invente le mail ! D�couvrez le nouveau Yahoo! Mail et son interface r�volutionnaire. http://fr.mail.yahoo.com