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