<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I have mixed feeling about this patch. On one hand, having some infrastructure in place for adaptive JIT is goodness. However, the current ExecutionEngine pre-dates MC JIT and it is heading towards a major change. For this reason, I'd prefer not to take patches that extend / changes EE interface at this time.<div><br></div><div>Evan</div><div><br><div><div>On Jun 23, 2011, at 7:32 PM, Xin Tong Utoronto wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><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>
<span><adaptivecompilation.patch></span>_______________________________________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits<br></blockquote></div><br></div></body></html>