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.