Most of the changes in this patch are within JIT.cpp and JIT.hpp. Only a few variables are added to ExecutionEngine . I am now sure how this is going to affect MC JIT. Also, when is the major change for the MC JIT going to be completed ?<br>
<br>Xin <br><br><br><div class="gmail_quote">On Tue, Jun 28, 2011 at 6:08 PM, Evan Cheng <span dir="ltr"><<a href="mailto:evan.cheng@apple.com">evan.cheng@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;">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 class="im"><div>On Jun 23, 2011, at 7:32 PM, Xin Tong Utoronto wrote:</div><br></div><blockquote type="cite"><div><div></div><div class="h5"><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 face="'Times New Roman'" size="3">register allocators, preRA schedulers, etc. and a full set of </font><font size="3">optimizations<font 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 style="font-family: arial; white-space: normal;"><a href="http://www.google-melange.com/gsoc/project/google/gsoc2011/timexerox/8001" target="_blank">http://www.google-melange.com/gsoc/project/google/gsoc2011/timexerox/8001</a>). </span><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>
</div></div><span><adaptivecompilation.patch></span>_______________________________________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br></blockquote></div><br></div></div></blockquote></div><br><br clear="all"><br>
-- <br>Kind Regards <br><br>Xin Tong <br>