On 06/21/2012 04:38 PM, Matt Fowles wrote: > All~ > > Couldn't the VM detect hot mega-morphic methods and have them bestow > some of their hotness upon the callers. Making their callers more > likely to inline them. Then you have a different call site for the > each which is likely to be monomorphic. > > Matt
yes, that the idea when i said the the VM can go backward. Note that it works only for callsites that are megamorphic because of a value that comes from the parameters of the high order method. There is also a special case for OSR because in that case you may have the stack so it can be easier to go backward. Rémi > > On Thu, Jun 21, 2012 at 10:30 AM, Rémi Forax <fo...@univ-mlv.fr > <mailto:fo...@univ-mlv.fr>> wrote: > > On 06/21/2012 04:12 PM, Jochen Theodorou wrote: > > Am 21.06.2012 16 <tel:21.06.2012%2016>:00, schrieb Rémi Forax: > >> On 06/21/2012 03:52 PM, Jochen Theodorou wrote: > >>> Am 21.06.2012 13 <tel:21.06.2012%2013>:57, schrieb Krystal Mok: > > [...] > >>>> I wonder how well the new interpreter design in Graal would > handle this > >>>> kind of case, since it's supposed to have picked the good > parts from > >>>> trace-based compilation, but without actually having to do > tracing. > >>>> Can't wait to see more details of it at this year's JVM > Language Summit. > >>> If I understood Thomas right, then Graal doesn't have that > problem. > >>> Afaik hotspot doesn't have to have that problem too. It just was a > >>> design decision not to make call site caching per execution > path. Afaik > >>> chaning that now would take quite some effort, but is not > impossible. > >> You can create the execution path backward, when it's needed. > > I was thinking that the VM can create the path backward. > > > you can in PHP.reboot, but in Groovy I don't have access to the full > > execution path. Inside "each" I don't know what did call me and > at the > > point of where I call each, I don't see what each will actually do. > > yes, but you can detect that 'each' is a special method because > it takes a closure (Closure) as parameter and try to do some magic. > > > > > bye blackdrag > > > > Rémi > > _______________________________________________ > mlvm-dev mailing list > mlvm-dev@openjdk.java.net <mailto:mlvm-dev@openjdk.java.net> > http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev > > > > > _______________________________________________ > mlvm-dev mailing list > mlvm-dev@openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev