harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ivan Volosyuk" <ivan.volos...@gmail.com>
Subject Re: [drlvm] Jitrino.OPT performs incorrect GC enumeration in nested loop with array accesses
Date Fri, 06 Oct 2006 11:35:44 GMT
This is not the same. In your example, if the second reference points
to previous position of object it will be automatically updated
according to installed forwarding pointer.

We have different problem. The reported offset within object is
incorrect, as the base is taken from new location of object, but
interior pointer points to old object location.

Here is algorithm.
before GC:
 *interior_pointer == base + offset
after GC:
 *interior_pointer_updated == new_base + offset

Reported offset should be: offset = *interior_pointer - base;
But we have: offset' = *interior_pointer - new_base;

After GC interior_pointer should be updated:
  *interior_pointer_updated = new_base + offset
But in our case it will be:
 *interiour_pointer_updated' = new_base + offset' = new_base +
*interior_pointer - new_base = *interior_pointer

So, interior_pointer will not be updated.

On 10/6/06, Mikhail Fursov <mike.fursov@gmail.com> wrote:
> Ivan,
> the problem is described in the example in H1682, I can add it to the email
> thread to invite other GC/JIT gurus to participate in the discussion.
> The example:
> JIT has 2 references to report. Both of them point to the same object. JIT
> expects that both references are updated when GC moves object.
> 1) JIT reports reference 1
> 2) GC moves object and updates reference 1.
> 3) JIT reports reference 2, but the reference points to the old place where
> the object was.
> This is almost the same situation we have today.
> On 10/6/06, Ivan Volosyuk <ivan.volosyuk@gmail.com> wrote:
> >
> > Why don't we update roots just when it was reported? Thus we don't need to
> > keep large array of roots and it can also have positive influence on
> > d-cache utilization (need to proof this).
> >
> --
> Mikhail Fursov

Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org

View raw message