Ping with CCing Jeff and Joseph. I think patch is rather obvious, but hopefully other items will also get some attention.
29.01.2020 16:32, Roman Zhuykov wrote: > Hi! > I've investigated a bit, because some of the following confused me > while working with some local 9.2-based branch. > > Documentation issues: > (0) See patch for install.texi at the bottom, two possible values are > not documented. Ok for master? Backports? > (1) For me it seems confusing to have 'tree' and 'gimple' values, but > not sure how to solve this. > (2) Developer has to look into configure scripts to understand which > macro will be defined. E.q. 'misc' means "CHECKING_P". > (3) Install.texi IMHO doesn't properly describe what happens when > --enable-checking is used without "=list". Maybe we should explicitly > tell this means same as "=yes". > (4) Statement "This is ‘yes,extra’ by default when building from the > source repository or snapshots." is wrong, because 'snapshots' may > relate to released branches (e.q. GCC 9-20200125 Snapshot), and > gcc/DEV-PHASE is empty there. > (5) Statement "‘extra’ adds for ‘misc’ checking extra checks ..." is > also confusing, one can run 'configure --enable-checking=extra' and > will have only ENABLE_EXTRA_CHECKING, but not CHECKING_P, and in > common.opt flag_checking will have Init(0). > > Behavior issues: > (6) It is not obvious to have default --enable-checking=release on any > commit in releases/* branches (DEV-PHASE is empty there). IMHO it's > enough 'experimental' when picking for example some commit between 9.1 > and 9.2. This also can confuse 'git bisect run' scenario when good > revision is old enough and bad revision is on release branch. See also > (4). > (7) Running "configure --enable-checking" means less (!) checks on > master branch (where DEV-PHASE is experimental). Default is > "yes+extra" and you get only "yes" with that option. > (8) Why we always start with "release" values ('assert'+'runtime') as > default? If developer runs "configure --enable-checking=df,rtl,tree" > probably it should mean only picked values are enabled. Why we > silently add 'assert' and 'runtime' into that set? > > I haven't tried to find additional issues with related > '--enable-stage1-checking' option. > > Roman > > PS. I see some lines have more than 80 chars in install.texi, few of > them were added recently while cleaning references to SVN. Patch fixes > this only forthe paragraph it touches. > -- > > gcc/ChangeLog: > > 2020-01-29 Roman Zhuykov <zhr...@ispras.ru> > > * doc/install.texi: Document 'types' and 'gimple' values for > '--enable-checking' configure option. > > diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi > --- a/gcc/doc/install.texi > +++ b/gcc/doc/install.texi > @@ -1845,19 +1845,19 @@ consistency checks of the requested > complexity. This does not change the > generated code, but adds error checking within the compiler. This will > slow down the compiler and may only work properly if you are building > the compiler with GCC@. This is @samp{yes,extra} by default when > building > -from the source repository or snapshots, but @samp{release} for > releases. The default > -for building the stage1 compiler is @samp{yes}. More control > +from the source repository or snapshots, but @samp{release} for releases. > +The default for building the stage1 compiler is @samp{yes}. More control > over the checks may be had by specifying @var{list}. The categories of > checks available are @samp{yes} (most common checks > -@samp{assert,misc,tree,gc,rtlflag,runtime}), @samp{no} (no checks at > -all), @samp{all} (all but @samp{valgrind}), @samp{release} (cheapest > +@samp{assert,misc,tree,gc,gimple,rtlflag,runtime,types}), @samp{no} > (no checks > +at all), @samp{all} (all but @samp{valgrind}), @samp{release} (cheapest > checks @samp{assert,runtime}) or @samp{none} (same as @samp{no}). > Individual checks can be enabled with these flags @samp{assert}, > -@samp{df}, @samp{fold}, @samp{gc}, @samp{gcac}, @samp{misc}, @samp{rtl}, > -@samp{rtlflag}, @samp{runtime}, @samp{tree}, @samp{extra} and > @samp{valgrind}. > -@samp{extra} adds for @samp{misc} checking extra checks that might affect > -code generation and should therefore not differ between stage1 and later > -stages. > +@samp{df}, @samp{fold}, @samp{gc}, @samp{gcac}, @samp{gimple}, > @samp{misc}, > +@samp{rtl}, @samp{rtlflag}, @samp{runtime}, @samp{tree}, @samp{types}, > +@samp{extra} and @samp{valgrind}. @samp{extra} adds for @samp{misc} > checking > +extra checks that might affect code generation and should therefore > not differ > +between stage1 and later stages. > > The @samp{valgrind} check requires the external @command{valgrind} > simulator, available from @uref{http://valgrind.org/}. The > > >