<div dir="ltr">PIC = polymorphic inline caches.<div><br></div><div style>When you optimize the lookup in the VM for speed you implement the so called inline caches: at each send site, you put information about the result of the previous lookup done here. In most case, a send site is monomorphic, which mean it is always the same method that is called there (the receiver has always the same class), so the information put is the method always called and this method is triggered instead of doing a lookup to find the method (to increase the execution speed by avoiding lookup).</div>

<div style><br></div><div style>Some other send sites use polymorphism, which means there are a few different class possible for the receiver of the send site. Inline caches optimizations on this sites are called PIC, and the optimization is done differently.</div>

<div style><br></div><div style>For more informations, there&#39;s Eliot&#39;s blog about cog here:</div><div style><a href="http://www.mirandabanda.org/cogblog/2011/03/01/build-me-a-jit-as-fast-as-you-can/">http://www.mirandabanda.org/cogblog/2011/03/01/build-me-a-jit-as-fast-as-you-can/</a><br>

</div><div style>or the thesis of hölzle here:</div><div style><a href="http://www.cs.ucsb.edu/~urs/oocsb/self/papers/urs-thesis.html">http://www.cs.ucsb.edu/~urs/oocsb/self/papers/urs-thesis.html</a><br></div><div style>

<br></div><div style>The thesis of hölzle explains the basics of inline caches and their implementation in self 91, the cog blog explains their implementation in Cog.</div><div style><br></div><div style>Hope I could help you,</div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/7/2 Tudor Girba <span dir="ltr">&lt;<a href="mailto:tudor@tudorgirba.com" target="_blank">tudor@tudorgirba.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

 <br><div dir="ltr">What is PIC? :)<div><br></div><div>Doru</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jun 30, 2013 at 10:06 AM, stephane ducasse <span dir="ltr">&lt;<a href="mailto:stephane.ducasse@gmail.com" target="_blank">stephane.ducasse@gmail.com</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi eliot<br>
<br>
So I was reading the PhD of Holzle and I wanted to know<br>
<br>
        - I remember that at southampton (yes that far) you did a presentation on the tragedy of the PIC.<br>
        And I would not find the slides (because there were none).<br>
        What was the pitch? That megamorphic site are killing PIC?<br>
<br>
        - does VW use type feedback?<br>
        if yes, what were the strategies to decide what and when to recompile.<br>
<br>
        - I was wondering how type feedback and PIC interact (I&#39;m at chapter 5 of the PhD so may be this is explain in the self implementation part)<br>
        the first case of the PIC could be based on type feedback?<br>
<br>
<br>
<br>
Stef</blockquote></div><br><br clear="all"><div><br></div>-- <br><div><a href="http://www.tudorgirba.com" target="_blank">www.tudorgirba.com</a></div><div><br></div><div>&quot;Every thing has its own flow&quot;</div>
</div>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Clément Béra<div>Mate Virtual Machine Engineer</div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;line-height:16px;background-color:rgb(255,255,255)">Bâtiment B 40, avenue Halley 59650 </span><em style="font-weight:bold;font-style:normal;font-family:arial,sans-serif;line-height:16px;background-color:rgb(255,255,255)">Villeneuve d&#39;Ascq</em></div>


</div>