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}.
next prev parent 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).