This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [wwwdocs] Document in changes.html -fcode-hoisting, -fipa-bit-cp, -fipa-vrp, -fsplit-loops, GCJ removal, x86 ISA additions, -fshrink-wrap-separate etc.
- From: Gerald Pfeifer <gerald at pfeifer dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Segher Boessenkool <segher at kernel dot crashing dot org>, Kyrill Tkachov <kyrylo dot tkachov at foss dot arm dot com>, gcc-patches at gcc dot gnu dot org, Richard Biener <rguenther at suse dot de>, Uros Bizjak <ubizjak at gmail dot com>, Andrew Senkevich <andrew dot n dot senkevich at gmail dot com>
- Date: Sun, 26 Feb 2017 15:21:20 +0100 (CET)
- Subject: Re: [wwwdocs] Document in changes.html -fcode-hoisting, -fipa-bit-cp, -fipa-vrp, -fsplit-loops, GCJ removal, x86 ISA additions, -fshrink-wrap-separate etc.
- Authentication-results: sourceware.org; auth=none
- References: <20170127163051.GW1867@tucnak> <588B76AD.9050300@foss.arm.com> <20170127163817.GY1867@tucnak> <20170127200540.GI30284@gate.crashing.org> <20170127211537.GB1867@tucnak> <alpine.LSU.2.20.1702192301060.2410@anthias.pfeifer.com>
On Sun, 19 Feb 2017, Gerald Pfeifer wrote:
> That was quite a bit; thanks for doing that, Jakub!
>
> In the patch below I try to streamline language a bit, document options
> being implied by -Os (in addition to -O2 or higher), fix grammar in a few
> places, and change a textual link to being a real one.
>
> I have _not_ applied this yet, and would appreciate your feedback.
I did another two passes through this, making a few more simplifications
and changes, and committed it.
If you see anything beyond it, or changes you disagree with, let me know!
Gerald
Index: gcc-7/changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-7/changes.html,v
retrieving revision 1.66
diff -u -r1.66 changes.html
--- gcc-7/changes.html 24 Feb 2017 05:19:19 -0000 1.66
+++ gcc-7/changes.html 26 Feb 2017 14:19:09 -0000
@@ -50,41 +50,40 @@
<code>-fprintf-return-value</code> option.</li>
<li>A new store merging pass has been added. It merges constant stores to
adjacent memory locations into fewer, wider, stores.
- It can be enabled by using the <code>-fstore-merging</code> option and is
- enabled by default at the <code>-O2</code> optimization
- level or higher (including <code>-Os</code>).</li>
+ It is enabled by the <code>-fstore-merging</code> option and at the
+ <code>-O2</code> optimization level or higher (and <code>-Os</code>).</li>
<li>A new code hoisting optimization has been added to the partial
redundancy elimination pass. It attempts to move evaluation of
expressions executed on all paths to the function exit as early as
possible, which helps primarily for code size, but can be useful for
- speed of generated code as well. It can be enabled by using the
- <code>-fcode-hoisting</code> option and is enabled by default at
- the <code>-O2</code> optimization level or higher.</li>
+ speed of generated code as well. It is enabled by the
+ <code>-fcode-hoisting</code> option and at the <code>-O2</code>
+ optimization level or higher (and <code>-Os</code>).</li>
<li>A new interprocedural bitwise constant propagation optimization
has been added, which propagates knowledge about which bits of variables
are known to be zero (including pointer alignment information) across
- the call graph. It can be enabled by using the <code>-fipa-bit-cp</code>
- option if <code>-fipa-cp</code> is enabled as well, and is enabled by
- default at the <code>-O2</code> optimization level and higher.</li>
+ the call graph. It is enabled by the <code>-fipa-bit-cp</code>
+ option if <code>-fipa-cp</code> is enabled as well, and is enabled
+ at the <code>-O2</code> optimization level and higher (and
+ <code>-Os</code>).</li>
<li>A new interprocedural value range propagation optimization has been
added, which propagates integral ranges that variable values can be proven
- to be within across the call graph. It can be enabled by using the
- <code>-fipa-vrp</code> option and is enabled by default at the
- <code>-O2</code> optimization level and higher.</li>
+ to be within across the call graph. It is enabled by the
+ <code>-fipa-vrp</code> option and at the <code>-O2</code> optimization
+ level and higher (and <code>-Os</code>).</li>
<li>A new loop splitting optimization pass has been added. It splits
certain loops if they contain a condition that is always true on one
side of the iteration space and always false on the other into two
loops where each of the new two loops iterates just on one of the sides
of the iteration space and the condition does not need to be checked
- inside of the loop. It can be enabled by using the
- <code>-fsplit-loops</code> option and is enabled by default at the
- <code>-O3</code> optimization level or higher.</li>
+ inside of the loop. It is enabled by the <code>-fsplit-loops</code>
+ option and at the <code>-O3</code> optimization level or higher.</li>
- <li>Shrink-wrapping optimization can now separate portions of
+ <li>The shrink-wrapping optimization can now separate portions of
prologues and epilogues to improve performance if some of the
work done traditionally by prologues and epilogues is not needed
on certain paths. This is controlled by the
@@ -138,7 +137,7 @@
</li>
<li>The <code>-fsanitize=signed-integer-overflow</code> suboption of the
- UndefinedBehavior Sanitizer now diagnose arithmetic overflows even on
+ UndefinedBehavior Sanitizer now diagnoses arithmetic overflows even on
arithmetic operations with generic vectors.</li>
<li>Version 5 of the <a
@@ -525,8 +524,8 @@
<li>New <code>__builtin_add_overflow_p</code>,
<code>__builtin_sub_overflow_p</code>,
<code>__builtin_mul_overflow_p</code> built-in functions have been added.
- These work similarly to earlier added built-in functions without the
- <code>_p</code> suffix, but don't actually store the result of the
+ These work similarly to their siblings without the
+ <code>_p</code> suffix, but do not actually store the result of the
arithmetics anywhere, just return whether the operation would overflow.
These builtins allow easy checking for overflows e.g. in C++
<code>constexpr</code> contexts.</li>
@@ -566,7 +565,7 @@
(suffixed <code>f<i>N</i></code> or <code>f<i>N</i>x</code>) for the
new
types: <code>__builtin_copysign</code>, <code>__builtin_fabs</code>, <code>__builtin_huge_val</code>, <code>__builtin_inf</code>, <code>__builtin_nan</code>, <code>__builtin_nans</code>.</p></li>
- <li>Compilation with <code>-fopenmp</code> is now compatible with
+ <li>Compilation with <code>-fopenmp</code> is now compatible with the
C11 <code>_Atomic</code> keyword.</li>
</ul>
@@ -730,8 +729,8 @@
</li>
<li>Version 4.5 of the <a href="http://www.openmp.org/specifications/"
>OpenMP specification</a> is now partially supported also in the
- Fortran compilers, largest missing support in the Fortran frontend
- is structure element mapping.</li>
+ Fortran compiler; the largest missing item is structure element
+ mapping.</li>
<li>User-defined derived-type input/output (UDTIO) is added.</li>
@@ -765,11 +764,13 @@
</ul>
<h3 id="java">Java (GCJ)</h3>
+
<p>The GCC Java frontend and associated libjava runtime library have been
removed from GCC.</p>
<!-- .................................................................. -->
<h2 id="jit">libgccjit</h2>
+
<p>The libgccjit API gained support for marking calls as requiring
tail-call optimization via a new entrypoint:
<a href="https://gcc.gnu.org/onlinedocs/jit/topics/expressions.html#gcc_jit_rvalue_set_bool_require_tail_call">gcc_jit_rvalue_set_bool_require_tail_call</a>.</p>
@@ -946,7 +947,8 @@
<h3 id="nvptx">NVPTX</h3>
<ul>
<li>OpenMP target regions can now be offloaded to NVidia PTX GPGPUs.
- See https://gcc.gnu.org/wiki/Offloading on how to configure it.</li>
+ See the <a href="https://gcc.gnu.org/wiki/Offloading">Offloading Wiki</a>
+ on how to configure it.</li>
</ul>
<h3 id="powerpc">PowerPC / PowerPC64 / RS6000</h3>
- Follow-Ups:
- Re: [wwwdocs] Document in changes.html -fcode-hoisting, -fipa-bit-cp, -fipa-vrp, -fsplit-loops, GCJ removal, x86 ISA additions, -fshrink-wrap-separate etc.
- Re: [wwwdocs] Document in changes.html -fcode-hoisting, -fipa-bit-cp, -fipa-vrp, -fsplit-loops, GCJ removal, x86 ISA additions, -fshrink-wrap-separate etc.