Latest experiments...happiness and sadness

Philip Jenvey pjenvey at underboss.org
Wed Oct 17 17:58:58 PDT 2012


On Oct 17, 2012, at 12:59 PM, Charles Oliver Nutter wrote:

> On Wed, Oct 17, 2012 at 2:07 PM, Christian Thalinger
> <christian.thalinger at oracle.com> wrote:
>> On Oct 17, 2012, at 8:33 AM, David Chase <david.r.chase at oracle.com> wrote:
>>> 
>>> I'm very new to this (have not even looked at the source code to Hotspot yet), but is it possible
>>> to push the allocation/boxing to paths that are believed to be rarely taken?
>> 
>> That's what partial EA does.  I'm trying to get Vladimir to work on it and it seems I'm successful.
> 
> I started reading a bit about partial EA last night, specifically
> looking at how PyPy does it.
> 
> In PyPy, the JIT treats accesses and calls against an object as acting
> against a virtual object. I did not see if they actually allocate
> stack space for this, but my guess is that it's "virtual" in that the
> data moves are still unoptimized, unemitted operations in the IR
> representation. If at some point the code calls a branch that would
> need to see the actual object, they reconstitute it based on the
> actual values at that point.

PyPy will allocate them on the stack. I'm not sure what you mean by having "unoptimized, unemitted operations in the IR". It optimizes the operations around them too.

This is a pretty good description of it all if you haven't seen it already:

http://morepypy.blogspot.com/2010/09/escape-analysis-in-pypys-jit.html

--
Philip Jenvey



More information about the mlvm-dev mailing list