public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Roman Zhuykov <zhroma@ispras.ru>
To: Sandra Loosemore <sandra@codesourcery.com>,
	"gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>,
	Richard Sandiford <richard.sandiford@arm.com>,
	Richard Biener <rguenther@suse.de>,
	Jakub Jelinek <jakub@redhat.com>
Cc: Alexander Monakov <amonakov@ispras.ru>
Subject: Re: [PATCH] issues with configure --enable-checking option
Date: Tue, 25 Feb 2020 08:21:00 -0000	[thread overview]
Message-ID: <b093c54c-fce2-45bc-27ac-0cfd2bf6f119@ispras.ru> (raw)
In-Reply-To: <7b5774a8-60d0-c36e-efde-8ff88755f50e@codesourcery.com>

Hi all!

22.02.2020 6:25, Sandra Loosemore wrote:
> On 2/11/20 7:46 AM, Roman Zhuykov wrote:
>> Since I have to ask again about backports, I've decided to make few more
>> steps and with Alexander's help created new patch which rewords the
>> whole option description and covers items (3), (4) and (8).  CCing Jakub
>> and Richard as release managers, also ask Sandra to take a quick look if
>> new wording is alright.  New patch suits all active branches.  OK for
>> 10-9-8 ?
>
> I'm not an expert on the content, but the new text reads OK except for
> using future tense to describe current behavior.  Namely:
>
>> +requested complexity.  This will slow down the compiler and may only
>> work
>
> s/will slow/slows/
>
>> +must be explicitly requested.  Disabling assertions will make the
>> compiler
>> +and runtime slightly faster but increase the risk of undetected
>> internal
>
> s/will make/makes/
> s/increase/increases/
>
>> +option is specified the stage1 compiler will be built with @samp{yes}
>
> s/will be/is/
>
> OK with those fixes applied.

07.02.2020 20:20, Richard Sandiford wrote:
> OK with those changes, and thanks for doing this.

Sandra and Richard, thank you for review!

Since 'types' checks are included into 'yes' and I addressed all other
hints, I have pushed updated patch as r10-6832.

Jakub, Richard B, can I apply it to 8 and 9 ?

Roman


doc: properly describe --enable-checking behavior

This patch rewords the whole description to fix minor issues:
 - documents 'gimple' and 'types' checks,
 - clarifies what happens when option is used without '=list',
 - fixes inaccurate wrong wording about release snapshots,
 - describes that release checks can only be disabled explicitly.

gcc/ChangeLog:

2020-02-25  Roman Zhuykov  <zhroma@ispras.ru>

    * doc/install.texi (--enable-checking): Properly document current
    behavior.
    (--enable-stage1-checking): Minor clarification about bootstrap.

diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -1839,41 +1839,48 @@ final releases.  The specific files which get
@option{-Werror} are
 controlled by the Makefiles.
 
 @item --enable-checking
+@itemx --disable-checking
 @itemx --enable-checking=@var{list}
-When you specify this option, the compiler is built to perform internal
-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
-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
-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.
-
-The @samp{valgrind} check requires the external @command{valgrind}
-simulator, available from @uref{http://valgrind.org/}.  The
-@samp{df}, @samp{rtl}, @samp{gcac} and @samp{valgrind} checks are very
expensive.
-To disable all checking, @samp{--disable-checking} or
-@samp{--enable-checking=none} must be explicitly requested.  Disabling
-assertions will make the compiler and runtime slightly faster but
-increase the risk of undetected internal errors causing wrong code to be
-generated.
+This option controls performing internal consistency checks in the
compiler.
+It does not change the generated code, but adds error checking of the
+requested complexity.  This slows down the compiler and may only work
+properly if you are building the compiler with GCC@.
+
+When the option is not specified, the active set of checks depends on
context.
+Namely, bootstrap stage 1 defaults to @samp{--enable-checking=yes}, builds
+from release archives default to @samp{--enable-checking=release}, and
+otherwise @samp{--enable-checking=yes,extra} is used.  When the option is
+specified without a @var{list}, the result is the same as
+@samp{--enable-checking=yes}.  Likewise, @samp{--disable-checking} is
+equivalent to @samp{--enable-checking=no}.
+
+The categories of checks available in @var{list} are @samp{yes} (most
common
+checks @samp{assert,misc,gc,gimple,rtlflag,runtime,tree,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}).
+@samp{release} checks are always on and to disable them
+@samp{--disable-checking} or @samp{--enable-checking=no[,<other checks>]}
+must be explicitly requested.  Disabling assertions makes the compiler and
+runtime slightly faster but increases the risk of undetected internal
errors
+causing wrong code to be generated.
+
+Individual checks can be enabled with these flags: @samp{assert},
@samp{df},
+@samp{extra}, @samp{fold}, @samp{gc}, @samp{gcac}, @samp{gimple},
+@samp{misc}, @samp{rtl}, @samp{rtlflag}, @samp{runtime}, @samp{tree},
+@samp{types} and @samp{valgrind}.  @samp{extra} extends @samp{misc}
+checking with extra checks that might affect code generation and should
+therefore not differ between stage1 and later stages in bootstrap.
+
+The @samp{valgrind} check requires the external @command{valgrind}
simulator,
+available from @uref{http://valgrind.org/}.  The @samp{df}, @samp{rtl},
+@samp{gcac} and @samp{valgrind} checks are very expensive.
 
 @item --disable-stage1-checking
 @itemx --enable-stage1-checking
 @itemx --enable-stage1-checking=@var{list}
-If no @option{--enable-checking} option is specified the stage1
-compiler will be built with @samp{yes} checking enabled, otherwise
-the stage1 checking flags are the same as specified by
+This option affects only bootstrap build.  If no @option{--enable-checking}
+option is specified the stage1 compiler is built with @samp{yes} checking
+enabled, otherwise the stage1 checking flags are the same as specified by
 @option{--enable-checking}.  To build the stage1 compiler with
 different checking options use @option{--enable-stage1-checking}.
 The list of checking options is the same as for @option{--enable-checking}.


  reply	other threads:[~2020-02-25  8:21 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-29 13:52 Roman Zhuykov
2020-02-04  7:16 ` Roman Zhuykov
2020-02-07 17:20 ` Richard Sandiford
2020-02-11 14:47   ` Roman Zhuykov
2020-02-17 11:01     ` Roman Zhuykov
2020-02-22  3:25     ` Sandra Loosemore
2020-02-25  8:21       ` Roman Zhuykov [this message]
2020-02-25  8:31         ` Jakub Jelinek
2020-02-25 10:36           ` Roman Zhuykov
2020-02-25 10:41             ` Jakub Jelinek
2020-03-10 12:20             ` Roman Zhuykov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b093c54c-fce2-45bc-27ac-0cfd2bf6f119@ispras.ru \
    --to=zhroma@ispras.ru \
    --cc=amonakov@ispras.ru \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    --cc=rguenther@suse.de \
    --cc=richard.sandiford@arm.com \
    --cc=sandra@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).