Hacker News new | past | comments | ask | show | jobs | submit login

Most modern jit compilers are using live profile data, especially the original basic block versioning technique which this article is based on.

This particular algorithm tries to get rid of some the problems of the relatively simple PGO-like approach.

Btw, authors report strikingly good results.




That's because the authors are reporting results for AOT scheme to c compilers.

For languages more directly supported by llvm/gcc, they already do various kinds of function versioning and specialization.

You would be highly unlikely to get 10% there from a magic bullet like this - in the end, there are no magic bullets. Just lots of hard work.


Mmm, my impression is you can get 90% there with significantly less effort then LLVM or GCC. A good register allocation strategy, some basic inlining, maybe peephole optimization? LLVM is fighting for 5-10% improvements on top of the big things


The key here is that this is meant to be used for dynamic languages that don't have a lot of typing info when doing AOT compilation




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: