[Vm-dev] Just had a "doh!" moment with literal variable unforwarding...

Eliot Miranda eliot.miranda at gmail.com
Mon Dec 5 04:51:38 UTC 2016


Hi Clément,

I just realized that if we maintain a list of machine code methods that
reference global variables, in a similar fashion to the list of methods
that refer to new literals, then we can scan the list post-become and
ensure that all are unforwarded. hence the code generator can avoid
generating the unforwarding code on access.

We could probably use the same list for both methods with global references
and methods with new references. Since a method is marked as referring to
new objects (cmRefersToYoung) we can avoid scanning methods that simply
refer to globals when we scavenge.  That we have to visit a few extra
methods after become (the cmRefersToYoung methods that don't refer to
globals) is unlikely to be a hardship; there are very few methods on the
youngReferrers list.

What do you think?
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20161204/00f9e863/attachment.html>


More information about the Vm-dev mailing list