On Oct 17, 2012, at 12:59 PM, Charles Oliver Nutter wrote: > On Wed, Oct 17, 2012 at 2:07 PM, Christian Thalinger > <christian.thalin...@oracle.com> wrote: >> On Oct 17, 2012, at 8:33 AM, David Chase <david.r.ch...@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 _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev