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: [RFC] Cleaning up the pass manager


On Tue, 2010-06-15 at 18:38 +0200, Jan Hubicka wrote:

Citing Diego Novillo:
> > I have been thinking about doing some cleanups to the pass manager.

> This has been my goal for years, but somehow it always got off the top of
> TODO list ;)
> > 
> > Additionally, I would like to (at some point) incorporate some/most of
> > the functionality provided by ICI
> > (http://ctuning.org/wiki/index.php/CTools:ICI).  I'm not advocating
> > for integrating all of ICI, but leave enough hooks so such
> > experimentations are easier to do.

Good.

> > 
> > Initially, I'm going for some low hanging fruit:
> > 
> > - Fields properties_required, properties_provided and
> > properties_destroyed should Mean Something other than asserting
> > whether they exist.
> > - Whatever doesn't exist before a pass, needs to be computed.
> > - Pass scheduling can be done by simply declaring a pass and
> > presenting it to the pass manager.  The property sets should be enough
> > for the PM to know where to schedule a pass.
> > - dump_file and dump_flags are no longer globals.
> 
> One thing I would like to see (i.e. plan to add once I have time for it)
> is to commonize normal&LTO&WHOPR queues.
> At the moment WHOPR WPA somehow stands away and LTO is implemented by breaking
> up the previously continuous pass queue into pieces.

I would also suggest a tiny incremental progress in documentation.
Perhaps it could be as simple as suggesting a common comment template
for passes. Also, some more conventions could be helpful, for example
that each pass is named FOO_pass and its name field should be "FOO" or
"*FOO" 

What I still don't understand well are simple things like:

what is the name (in the opt_pass sense) of a given pass?

what are the passes providing a valid cfun?

what are the passes keeping the function-s?

etc.

I believe that a structured comment could help. When - in many
years :-( - the powerful people (Steering Committee, FSF, RMS, ...)
would accept the idea of generating documentation from code [and
implement the legalese allowing it thru appropriate exceptions, or legal
notices, or licenses], we could even imagine have an automatically
generated chapter documenting the passes. We could also imagine a
Graphviz *.dot file describing the graph of all passes.

Cheers!
-- 
Basile STARYNKEVITCH         http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***



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