emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MPS: native comp


From: Gerd Möllmann
Subject: Re: MPS: native comp
Date: Thu, 02 May 2024 12:49:47 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Andrea Corallo <acorallo@gnu.org> writes:

> I think is not correct to add ephemral relocs to the compilation unit.
> They are not reachable by the GC from that path on purpose, so that
> after the load procedure they get GCed.

>
> If MPS is scanning the stack as our GC does it should just work.  Are we
> sure this modification was necessary?

Yes.

I've read that comment.

      /* Note: data_ephemeral_vec is not GC protected except than by
         this function frame.  After this functions will be
         deactivated GC will be free to collect it, but it MUST
         survive till 'top_level_run' has finished his job.  We store
         into the ephemeral allocation class only objects that we know
         are necessary exclusively during the first load.  Once these
         are collected we don't have to maintain them in the heap
         forever.  */

The problem is not liveness, it's the existence of untraced references
there.

It's easy to tell igc when these references are definitely no longer in
use, by setting a cu member to NULL. Then igc will no longer trace them.

Haven't done that yet

# ifdef HAVE_MPS
          /* FIXME: If we want to get rid of these objects, stop tracing
             these references at some point.  */
          comp_u->data_eph_relocs = data_eph_relocs;
          comp_u->n_data_eph_relocs = d_vec_len;
# endif



reply via email to

[Prev in Thread] Current Thread [Next in Thread]