[Vm-dev] [VM-dev] Does reflective call (#perform:) jitted?

Eliot Miranda eliot.miranda at gmail.com
Tue Nov 22 23:51:52 UTC 2016

Hi Denis,

On Tue, Nov 22, 2016 at 12:05 PM, Denis Kudriashov <dionisiydk at gmail.com>

> Hello.
> I have another question on special cases for jitter.
> Do VM has a kind of PIC for reflective calls like #perform:?

No.  The perform: primitive is in machine code and probes the first-level
method lookup cache.  If it finds a hit it either jumps to the entry point
(if the method is fitted) or enters the interpreter (if the method is
not).  The issue here is that the cache needs to be at the send site, but
there is nothing special about the #perform:[with:*] selector. Whether the
send is a perform or not depends on the send binding to a method containing
as perform: primitive.

In addition to receiver class it could also check selector from argument.

What exactly do you mean here?

best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20161122/5b56bbc3/attachment.html>

More information about the Vm-dev mailing list