megamorphic lambda prevention
Rémi Forax
forax at univ-mlv.fr
Thu Jun 21 07:30:00 PDT 2012
On 06/21/2012 04:12 PM, Jochen Theodorou wrote:
> Am 21.06.2012 16:00, schrieb Rémi Forax:
>> On 06/21/2012 03:52 PM, Jochen Theodorou wrote:
>>> Am 21.06.2012 13: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
More information about the mlvm-dev
mailing list