On Thu, 21 Mar 2013, Richard Biener wrote: > On Tue, 19 Mar 2013, Richard Biener wrote: > > > On Tue, 19 Mar 2013, Richard Biener wrote: > > > > > On Tue, 19 Mar 2013, Richard Biener wrote: > > > > > > > > > > > This adds a GC collection point after each pass instead just after > > > > those with TODO_ggc_collect in their todo. The patch will possibly > > > > slow-down gcac checking a bit (80 passes have TODO_ggc_collect, > > > > I didn't try to enumerate those that do not, but a grep shows we > > > > may have up to 212 passes. OTOH gcac checking will now "properly" > > > > verify that all pass boundaries are suitable for collection. > > > > > > > > A complete patch will remove TODO_ggc_collect and all its uses > > > > as well. > > > > > > > > The patch should result in lower peak memory consumption for > > > > some of the odd testcases that we worked on. > > > > > > > > Bootstrap & regtest scheduled on x86_64-unknown-linux-gnu. > > > > > > Which shows that I need to merge the IRA and reload/lra passes. > > > Honza tells me that they are considered "separate" has historical > > > reasons only. Given that reload pushes TV_IRA and that the boundary > > > isn't GC safe I don't think that is too bad (dump files will now > > > be shared, of course). > > > > > > I'll schedule a gcac checking bootstrap over night as well. > > > > The following is it, changelog omits the boring part (enumerating > > all files and pass structs touched ...). > > > > Regularly bootstrapped and tested on x86_64-unknown-linux-gnu, > > the gcac one is still running (as expected ...). > > > > Any objections? > > One testcase, g++.dg/pr55604.C, needs adjustment (it uses > -fdump-rtl-reload which is gone after the patch). > > I let a gcac bootstrap run into stage3 (and then killed it after > 3 days ...). I also built a gcac compiler without bootstrapping > and ran the testsuite. Unfortunately that results in lot of > timeouts and weird errors. I have reported PR56673 for a GC issue > unrelated to this patch (multi-versioning is broken). Weird errors > include -frepo linking errors. > > Any hints on how to globally disable the dejagnu timeout so I can > eventually get a clean gcac testsuite run without the patch to > compare against (I doubt -frepo errors can be related to this patch).
I went ahead with this now, given no comments at all and this both bit-rotting and blocking the IL verifier TODO cleanups in my pipeline. Re-bootstrapped and tested on x86_64-unknown-linux-gnu and committed. Richard. > > 2013-03-19 Richard Biener <rguent...@suse.de> > > > > * passes.c (execute_todo): Do not call ggc_collect conditional here. > > (execute_one_ipa_transform_pass): But unconditionally here. > > (execute_one_pass): And here. > > (init_optimization_passes): Remove reload pass. > > * tree-pass.h (TODO_ggc_collect): Remove. > > (pass_reload): Likewise. > > * ira.c (do_reload): Merge into ... > > (ira): ... this. > > (rest_of_handle_reload): Remove. > > (pass_reload): Likewise. > > * config/i386/i386.c (ix86_option_override): Refer to ira instead > > of reload for vzeroupper pass placement. > > * <everywhere>: Remove TODO_ggc_collect from todo_flags_start > > and todo_flags_finish of all passes.