On Thu, 11 Apr 2013, Jakub Jelinek wrote: > On Thu, Apr 11, 2013 at 12:26:00PM +0200, Richard Biener wrote: > > So, the option I didn't mention is to add a way to disable the > > GC (clearing/setting a property for example). > > Yeah, TODO_ggc_avoid_collect or similar would be easiest, plus > perhaps some way of expressing the requirement that "this pass must > immediately <follow,precede> <anotherpass>", for non-immediate > ordering we can add properties I guess.
One issue is that "GC boundary" is a global property but properties are per struct function. I'd rather add a way to have a container pass encapsulating all TODO/property/gate that simply executes its sub-passes in a "lean" way. Or a way to create sub-dumpfiles. 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. Richard.