[llvm-commits] LLVM JIT Adaptive Compilation Patch

Eric Christopher echristo at apple.com
Fri Jun 24 11:30:09 PDT 2011


On Jun 23, 2011, at 7:32 PM, Xin Tong Utoronto wrote:

> One of the current drawbacks of the LLVM JIT is the lack of an adaptive compilation system. All the non-adaptive bits are already there in LLVM: optimizing compiler with the different types of instruction selectors, register allocators, preRA schedulers, etc. and a full set of optimizations changeable at runtime. What's left is a system that can keep track of and dynamically look-up the hotness of methods and re-compile with more expensive optimizations as the methods are executed over and over. This should improve program startup time and execution time and will bring great benefits to all ported languages that intend to use LLVM JIT as one of the execution methods. 
> The implementation of the adaptive compilation framework is one of the Google Summer of Code 2011 project (http://www.google-melange.com/gsoc/project/google/gsoc2011/timexerox/8001). This patch is intended to provide the basic infrastructure for the adaptive compilation framework. Code for specific platforms are currently being developed. This patch is generate against the LLVM trunk and using GIT.

I realize I've looked at this already, but more eyes would be good. I'll also give it a bit more testing shortly.

That said can you provide some more information with this for everyone? What tests is gives a performance win on and what tests we can expect to see regressions on? Some of the logic behind some of your decisions etc?

Thanks!

-eric



More information about the llvm-commits mailing list