[PATCH][RFC] Remove TODO_ggc_collect, collect unconditionally

Richard Biener rguenther@suse.de
Fri Apr 12 08:58:00 GMT 2013


On Fri, 12 Apr 2013, Steven Bosscher wrote:

> On Thu, Apr 11, 2013 at 12:47 PM, Richard Biener wrote:
> > That said - I'm positively sure I will hit the IRA / reload
> > issue again when adding mandatory IL verification (though
> > for that they can simply drop the properties).
> >
> > So, if we ignore that "GC boundary" is global we can add
> > PROP_gc_safe, provided by default, removed by IRA and
> > re-added by reload.
> 
> What about the various pieces of GC-unsafe "black box" objects like
> edge->aux, basic_block->aux, loop->aux, etc.?
> 
> E.g. PR56921 looks like a "struct niter_desc" gets garbage collected
> even though a loop still points to it via its aux field (NB I'm just
> guessing, not verified).

I don't see how we were "safe" here before this patch.  Yes,
appearantly we didn't collect between those passes - but that
appears to be for no good reason as breaking the GC barrier
would certainly be a good reason for a comment.

Which means that for the resolution of this thread we probably
want to settle on TODO_no_ggc_collect which is quite explicit.

Oh, but please document _what_ is the data that is kept live
cross-pass at the point you add TODO_no_ggc_collect.

Richard.



More information about the Gcc-patches mailing list