passes description

Basile STARYNKEVITCH basile@starynkevitch.net
Sun Sep 7 19:28:00 GMT 2008


Hello All,

I have a wish: that each (middle-end) pass [those in gcc/tree-passes.h] 
would have a small documentation describing it (in particular which 
representations, TREE, SSA, CFG, etc... are valid after the pass). A 
simple wiki page (describing each pass) would be more than enough for 
me. Or at least having each *_opt_pass described in 
http://gcc.gnu.org/onlinedocs/gccint/Tree_002dSSA-passes.html without 
exceptions (even trivial clean-up passes need a few sentences).

I have difficulty in trying to position my passes in passes.c I'm pretty 
sure not to be alone on that!

I want to use MELT to prototype a single interval static analyser (like 
the interval analysis mentioned in 
http://en.wikipedia.org/wiki/Abstract_interpretation). I believe I need 
SSA & CFG.

perhaps we might need to define, e.g, some common comment structure for 
each *_opt_pass of tree-passes.h.

What do people think?

In addition, I find difficult & unrealistic to propose a patch for that, 
because that would essentially means understand the exact role of every 
pass, and I am not able of that, and I even think that few GCC hackers 
are understanding that.

I'm suggesting at least adding detailed comments inside each *_opt_pass 
structure.

I also think that each pass should have a unique name. Remember, if a 
pass name starts with '*' it behave as if it has no name (ie no dumping 
occur). I find pitiful that some new passes are still unamed.

I presume that there are some passes which nobody understands, but I 
believe that since the gimple -> tuple transition happened recently this 
  might be false know. I suppose that there are active contributors who 
know what the pass they patched are grossly doing.

So what would be the easiest solution to get more description of each pass?

Given that passes are central to the middle end in GCC, shouldn't we 
want each of them (without exception!) be described by at least a simple 
paragraph. I'm sure that is a small effort for each pass writer (he/she 
knows what he has coded) but it is a huge effort for somebody not 
understanding them. Should we aim for some structured comments, for some 
requirements regarding documenting the pass in the doc/*texi files, in 
the wiki, ...?

See also http://gcc.gnu.org/wiki/MakingGCCEasierToLearn

regards.
-- 
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} ***



More information about the Gcc mailing list