<pre><span style="font-family: 'Times New Roman'; font-size: medium; ">One of the current drawbacks of the LLVM JIT is the lack of an </span><span style="font-family: 'Times New Roman'; font-size: medium; ">adaptive compilation system. All the non-adaptive bits are already there in </span><span style="font-family: 'Times New Roman'; font-size: medium; ">LLVM: optimizing compiler with the different types of instruction selectors, </span><font class="Apple-style-span" face="'Times New Roman'" size="3">register allocators, preRA schedulers, etc. and a full set of </font><font class="Apple-style-span" size="3">optimizations<font class="Apple-style-span" face="'Times New Roman'"> </font></font><span style="font-family: 'Times New Roman'; font-size: medium; ">changeable at runtime. What's left is a system that can keep track of and </span><span style="font-family: 'Times New Roman'; font-size: medium; ">dynamically look-up the hotness of methods and re-compile with more </span><span style="font-family: 'Times New Roman'; font-size: medium; ">expensive optimizations as the methods are executed over and over. This </span><span style="font-family: 'Times New Roman'; font-size: medium; ">should improve program startup time and execution time and will bring great </span><span style="font-family: 'Times New Roman'; font-size: medium; ">benefits to all ported languages that intend to use LLVM JIT as one of the </span><span style="font-family: 'Times New Roman'; font-size: medium; ">execution methods. </span></pre>
<pre><span style="font-family: 'Times New Roman'; font-size: medium; ">The implementation of the adaptive compilation framework is one of the Google Summer of Code 2011 project (</span><span class="Apple-style-span" style="font-family: arial; white-space: normal; "><a href="http://www.google-melange.com/gsoc/project/google/gsoc2011/timexerox/8001">http://www.google-melange.com/gsoc/project/google/gsoc2011/timexerox/8001</a>). </span><span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; ">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.</span></pre>
<br>-- <br>Kind Regards <br><br>Xin Tong <br>