This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][RFC] Remove TODO_ggc_collect, collect unconditionally


On Thu, 11 Apr 2013, Bernd Schmidt wrote:

> On 04/11/2013 12:26 PM, Richard Biener wrote:
> > 
> > The point was not to remove TODO_ggc_collect, the point was to
> > both enforce the GC boundary at all passes (that's what the pass
> > manager assumes anyway) and to collect when necessary at such
> > well-defined boundaries.  Another approach would have been to
> > add TODO_ggc_collect everywhere where it wasn't.
> 
> > Note that pending patches will similarly enforce a verification
> > of all IL properties that are seemingly active.
> [...]
> 
> > So, the option I didn't mention is to add a way to disable the
> > GC (clearing/setting a property for example).
> 
> Maybe a "subpass" bit that could be set on IRA (or any other pass that
> only prepares for another, it might be nice to split up some overly
> large md_reorg passes) so that all these verifications and GC are skipped?

I suppose splitting to split the dump files?  Or to expose the
fact of "different passes" to the pass manager?

One "easy" way to do it would be to have a "regalloc" pass
and in its execute manually execute two sub-passes "ira" and "reload".
Manually, by doing parts of passes.c:execute_one_pass ():

  pass_init_dump_file (&ira);
  timevar_push (ira.tv_id);
  ira.execute ();
  pass_fini_dump_file (&ira);
... same for reload ...

but then the exercise would only be for creating two different dump
files (three actually, one empty for the containing "regalloc" pass).

Richard.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]