<br><br><div class="gmail_quote">On Thu, Mar 17, 2011 at 6:37 AM, Frank Shearar <span dir="ltr">&lt;<a href="mailto:frank.shearar@angband.za.org">frank.shearar@angband.za.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="h5"><br>
On 2011/03/17 13:10, Matthew Fulmer wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On Wed, Mar 16, 2011 at 10:02:43PM +0000, <a href="mailto:squeak-dev-noreply@lists.squeakfoundation.org" target="_blank">squeak-dev-noreply@lists.squeakfoundation.org</a> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://www.squeaksource.com/VMMaker/VMMaker-oscog.50.mcz" target="_blank">http://www.squeaksource.com/VMMaker/VMMaker-oscog.50.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker-oscog.50<br>
Author: eem<br>
Time: 16 March 2011, 10:56:06 am<br>
UUID: cc1d11ad-11f4-41d6-abfe-48f03fd9a405<br>
Ancestors: VMMaker-eem.737, VMMaker-oscog.49<br>
<br>
Sista: Speculative-inlining Smalltalk architecture<br>
</blockquote>
<br>
Woah. is this polymorphic inline caching for squeak? we need to<br>
pay you more<br>
</blockquote>
<br></div></div>
>From what little I understand on <a href="http://www.mirandabanda.org/cogblog/" target="_blank">http://www.mirandabanda.org/cogblog/</a>, Cog already uses PICs.<br></blockquote><div><br></div><div>Right.</div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
This looks like measurement/instrospection/inspection stuff?<br></blockquote><div><br></div><div>Yes.  Specifically counting of conditional branches and calling back when a counter reaches zero provides a means for the VM to report &quot;hot spots&quot;. The image is then invoked in a hot spot, acn use the introspection facilities to discover the types at call sites (that&#39;s what PICs record) and from that the image is in a position to create optimized bytecoded methods that speculatively inline code.  The inlining is speculative because the type information in PICs reflects only the types at each send in the current programme and say nothing about what the types may be in the future (but they&#39;re a good predictor).  So the inliner must preceed code that assumes types with checks of those types.  You can think of it as hoisting out invariant checks such as class membership as far as possible in an optimized method and then, once past those outer checks, nothing needs to be checked in the inner loops.  Hence performance.</div>
<div><br></div><div>I&#39;m working with Marcus Denker and Colin Putney on this and we&#39;re interested in contributions from strong low-level and/or high-level programmers with an interest in optimization.  e.g. if you&#39;ve read and understood and been excited by <a href="http://www.amazon.com/Advanced-Compiler-Design-Implementation-Muchnick/dp/1558603204/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1300380158">Munchnik</a> we&#39;re interested in having you aboard.</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
(But otherwise I agree!)<br><font color="#888888">
<br>
frank<br>
</font></blockquote></div><br>