Re: [wwwdocs] Update changes.html for LTO and IPA

2017-03-04 Thread Gerald Pfeifer
On Tue, 28 Feb 2017, Jan Hubicka wrote:
>> And one question: "declaration linking" is used in the description
>> of Link-time optimization improvements, alas that string does not 
>> appear anywhere in either the source tree or documentation?
> It is my own name indeed. lto-symtab.c does merge declarations
> when they refer to same symbol name. Newly we do not merge when 
> the symbol names does not appear semantically similar enough.
> We can also call it declaration merging, but it is internal name 
> anyway and most link-time optimization papers reffer to these merging 
> processes as linking.

Thanks for the explanation, Honza.

In that case, I guess leave it as is unless someone else wants to
see this changed.


As another note, "declaration merging" once occurs in our codebase,
in varpool.c:

  /* When doing declaration merging we have duplicate
 entries for given decl.  Do not attempt to remove
 the boides, or we will end up remiving
 wrong one.  */

Should this read "Do not attempt to address this, or we risk removing
the wrong one" or something like that?

Unless 


Re: [wwwdocs] Update changes.html for LTO and IPA

2017-02-28 Thread Jan Hubicka
> On Wed, 20 Jan 2016, Jan Hubicka wrote:
> > this is updated patch.  I tried to explain better the situation WRT
> > incremental linking.
> 
> Thank you, Jan.  I had a couple of editorial changes on top of
> this, which I finally managed to commit.  (See the patch below.)
> 
> And one question: "declaration linking" is used in the description
> of Link-time optimization improvements, alas that string does not 
> appear anywhere in either the source tree or documentation?

It is my own name indeed. lto-symtab.c does merge declarations
when they refer to same symbol name. Newly we do not merge when the
symbol names does not appear semantically similar enough.
We can also call it declaration merging, but it is internal name anyway
and most link-time optimization papers reffer to these merging processes
as linking.

Honza
> 
> On Wed, 3 Feb 2016, Jonathan Wakely wrote:
> > s/of C++ methods/in C++ member functions/
> 
> This one got changed only partially in the patch applied last year, 
> and I have adjusted this now to read "in C++ member functions" as 
> opposed to "of C++ member functions".
> 
> Gerald
> 
> Index: changes.html
> ===
> RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-6/changes.html,v
> retrieving revision 1.95
> diff -u -r1.95 changes.html
> --- changes.html  25 Feb 2017 17:46:38 -  1.95
> +++ changes.html  27 Feb 2017 22:29:33 -
> @@ -59,12 +59,12 @@
>   on higher-level C++ programs. Programs doing invalid type punning
>   of pointer types may now need -fno-strict-aliasing
>   to work correctly.
> -Alias analysis now correctly supports weakref and
> - alias attributes. This makes it possible to access
> +Alias analysis now correctly supports the weakref and
> + alias attributes. This allows accessing
>   both a variable and its alias in one translation unit which is common
>   with link-time optimization.
>  Value range propagation now assumes that the this 
> pointer
> - of C++ member functions is non-null.  This eliminates
> + in C++ member functions is non-null.  This eliminates
>   common null pointer checks
>   but also breaks some non-conforming code-bases (such as Qt-5, Chromium,
>   KDevelop). As a temporary work-around
> @@ -74,7 +74,8 @@
>  
>warning and error attributes are now
> correctly preserved by declaration linking and thus
> -   -D_FORTIFY_SOURCE=2 is now supported with 
> -flto.
> +   -D_FORTIFY_SOURCE=2 is now supported with
> +   -flto.
>Type merging was fixed to handle C and Fortran interoperability
> rules as defined by the Fortran 2008 language standard.
> 
> @@ -83,10 +84,10 @@
> char is scalar.
> INTEGER(KIND=C_SIGNED_CHAR) should be used instead.
> In general, this inter-operability cannot be implemented, for
> -   example, on targets where function passing conventions of arrays
> -   differs from scalars.
> -  More type information is now preserved at link time reducing
> -   the loss of accuracy of the type based alias analysis compared
> +   example on targets where the argument passing convention for
> +   arrays differs from scalars.
> +  More type information is now preserved at link time, reducing
> +   the loss of accuracy of the type-based alias analysis compared
> to builds without link-time optimization.
>Invalid type punning on global variables and declarations is now
> reported with -Wodr-type-mismatch.
> @@ -96,30 +97,35 @@
> was significantly improved by decreasing the size of streamed
> data when partitioning programs.  The size of streamed
> IL while compiling Firefox 46.0 was reduced by 66%.
> -  The linker plugin was extended to pass information about type of
> -   binary produced to GCC back end (that can be also manually controlled
> -   by -flinker-output).  This makes it possible to
> +  The linker plugin was extended to pass information about the
> +   type of binary produced to the GCC back end. (That can also be
> +   controlled manually by -flinker-output.)
> +   This makes it possible to
> properly configure the code generator and support incremental
> -   linking. Incremental linking of LTO objects by gcc -r is
> -   now supported on plugin-enabled setups.
> +   linking. Incremental linking of LTO objects by gcc -r
> +   is now supported for plugin-enabled setups.
> There are two ways to perform incremental linking:
> 
>Linking by ld -r will result in an object file
>with all sections from individual object files mechanically merged.
> -  This delays the actual link time optimization to final linking step
> -  and thus permits whole program optimization.  Linking final binary
> +  This delays the actual link-time optimization to 

Re: [wwwdocs] Update changes.html for LTO and IPA

2017-02-27 Thread Gerald Pfeifer
On Wed, 20 Jan 2016, Jan Hubicka wrote:
> this is updated patch.  I tried to explain better the situation WRT
> incremental linking.

Thank you, Jan.  I had a couple of editorial changes on top of
this, which I finally managed to commit.  (See the patch below.)

And one question: "declaration linking" is used in the description
of Link-time optimization improvements, alas that string does not 
appear anywhere in either the source tree or documentation?

On Wed, 3 Feb 2016, Jonathan Wakely wrote:
> s/of C++ methods/in C++ member functions/

This one got changed only partially in the patch applied last year, 
and I have adjusted this now to read "in C++ member functions" as 
opposed to "of C++ member functions".

Gerald

Index: changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-6/changes.html,v
retrieving revision 1.95
diff -u -r1.95 changes.html
--- changes.html25 Feb 2017 17:46:38 -  1.95
+++ changes.html27 Feb 2017 22:29:33 -
@@ -59,12 +59,12 @@
on higher-level C++ programs. Programs doing invalid type punning
of pointer types may now need -fno-strict-aliasing
to work correctly.
-Alias analysis now correctly supports weakref and
-   alias attributes. This makes it possible to access
+Alias analysis now correctly supports the weakref and
+   alias attributes. This allows accessing
both a variable and its alias in one translation unit which is common
with link-time optimization.
 Value range propagation now assumes that the this pointer
-   of C++ member functions is non-null.  This eliminates
+   in C++ member functions is non-null.  This eliminates
common null pointer checks
but also breaks some non-conforming code-bases (such as Qt-5, Chromium,
KDevelop). As a temporary work-around
@@ -74,7 +74,8 @@
 
   warning and error attributes are now
  correctly preserved by declaration linking and thus
- -D_FORTIFY_SOURCE=2 is now supported with 
-flto.
+ -D_FORTIFY_SOURCE=2 is now supported with
+ -flto.
   Type merging was fixed to handle C and Fortran interoperability
  rules as defined by the Fortran 2008 language standard.
  
@@ -83,10 +84,10 @@
  char is scalar.
  INTEGER(KIND=C_SIGNED_CHAR) should be used instead.
  In general, this inter-operability cannot be implemented, for
- example, on targets where function passing conventions of arrays
- differs from scalars.
-  More type information is now preserved at link time reducing
- the loss of accuracy of the type based alias analysis compared
+ example on targets where the argument passing convention for
+ arrays differs from scalars.
+  More type information is now preserved at link time, reducing
+ the loss of accuracy of the type-based alias analysis compared
  to builds without link-time optimization.
   Invalid type punning on global variables and declarations is now
  reported with -Wodr-type-mismatch.
@@ -96,30 +97,35 @@
  was significantly improved by decreasing the size of streamed
  data when partitioning programs.  The size of streamed
  IL while compiling Firefox 46.0 was reduced by 66%.
-  The linker plugin was extended to pass information about type of
- binary produced to GCC back end (that can be also manually controlled
- by -flinker-output).  This makes it possible to
+  The linker plugin was extended to pass information about the
+ type of binary produced to the GCC back end. (That can also be
+ controlled manually by -flinker-output.)
+ This makes it possible to
  properly configure the code generator and support incremental
- linking. Incremental linking of LTO objects by gcc -r is
- now supported on plugin-enabled setups.
+ linking. Incremental linking of LTO objects by gcc -r
+ is now supported for plugin-enabled setups.
  There are two ways to perform incremental linking:
  
 Linking by ld -r will result in an object file
 with all sections from individual object files mechanically merged.
-This delays the actual link time optimization to final linking step
-and thus permits whole program optimization.  Linking final binary
+This delays the actual link-time optimization to the final
+linking step and thus permits whole program optimization.
+Linking the final binary
 with such object files is however slower.
-Linking by gcc -r will lead to link time 
optimization
-and produce final binary into the object file.  Linking such object
-file is fast but avoids any benefits from whole program 
optimization.
+Linking by gcc -r 

Re: [wwwdocs] Update changes.html for LTO and IPA

2016-02-03 Thread Jonathan Wakely

On 19/01/16 16:45 +0100, Jan Hubicka wrote:

Index: changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-6/changes.html,v
retrieving revision 1.46
diff -u -r1.46 changes.html
--- changes.html22 Dec 2015 19:23:31 -  1.46
+++ changes.html19 Jan 2016 15:42:56 -
@@ -43,6 +43,64 @@
of array bounds.  In particular, it enables
-fsanitize=bounds as well as instrumentation of
flexible array member-like arrays.
+Type based alias analysis now disambiguate accesses to different
+   pointers. This improve precision of the alias oracle by about 20-30%
+   on higher-level C++ programs. Programs doing invalid type punning
+   of pointer types may now need -fno-strict-aliasing
+   to work correctly.
+Alias oracle now correctly supports weakref and
+   alias attributes. This makes it possible to access
+   both variable and its alias in one translation unit which is common
+   with link-time optimization.
+Value range propagation now assume that this pointer
+   of C++ methods is non-NULL.  This eliminates many NULL pointer checks


s/of C++ methods/in C++ member functions/


+   but also breaks some non-conforming code-bases (such as Qt-5, Chromium,
+   KDevelop). As a termporary work-around


s/termporary/temporary/



Re: [wwwdocs] Update changes.html for LTO and IPA

2016-01-20 Thread Jan Hubicka
> >+  is not performed. GCC 7 will support incremental IL linking.
> 
> "IL" again  what does this mean to users?

Thanks for corrections, I will apply them and post updated patch.  Here I
wanted to explain that gcc -r should now give a correct code (while with
earlier GCC releases it will produce code that often works but sometimes
doesn't).

Doing incremental link however will prevent whole program optimization from
happening because it produces final assembly at gcc -r time.  To get this
working as expected you want gcc -r to incrementally link into the LTO IL again
that is implemented by patch 
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg0.html
but it seems it will only get in next stage 1.

Honza


Re: [wwwdocs] Update changes.html for LTO and IPA

2016-01-19 Thread Sandra Loosemore

On 01/19/2016 08:45 AM, Jan Hubicka wrote:

Hi,
this patch mentiones few user visible changes I can think of.  I will
add some quality data on firefox once stage3 closes.

It seems that the optimization section of changes.html deserve some work :)

Honza

Index: changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-6/changes.html,v
retrieving revision 1.46
diff -u -r1.46 changes.html
--- changes.html22 Dec 2015 19:23:31 -  1.46
+++ changes.html19 Jan 2016 15:42:56 -
@@ -43,6 +43,64 @@
of array bounds.  In particular, it enables
-fsanitize=bounds as well as instrumentation of
flexible array member-like arrays.
+Type based alias analysis now disambiguate accesses to different


s/Type based/Type-based/
s/disambiguate/disambiguates/


+   pointers. This improve precision of the alias oracle by about 20-30%


s/improve/improves/


+   on higher-level C++ programs. Programs doing invalid type punning
+   of pointer types may now need -fno-strict-aliasing
+   to work correctly.
+Alias oracle now correctly supports weakref and


Are users supposed to know what "Alias oracle" is?  (I don't)


+   alias attributes. This makes it possible to access
+   both variable and its alias in one translation unit which is common


s/variable/a variable/


+   with link-time optimization.
+Value range propagation now assume that this pointer


s/assume/assumes/


+   of C++ methods is non-NULL.  This eliminates many NULL pointer checks
+   but also breaks some non-conforming code-bases (such as Qt-5, Chromium,
+   KDevelop). As a termporary work-around
+   -fno-delete-null-pointer-checks can be used. Wrong
+   code can be identified -fsanitize=undefined.


s/identified/identified by using/


+Link-time optimization improvements:
+
+  warning and error attributes are now
+ correctly preserved by the declaration linking and thus


s/the declaration/declaration/


+ -D_FORTIFY_SOURCE=2 is now supported with 
-flto.
+  Type merging was fixed to handle C and Fortran interoperability
+ rules as defined by the Fortran2005 language standard.


"Fortran2005" seems unlikely to be the correct spelling, and Wikipedia 
doesn't think there was a 2005 version of the Fortran standard at all. 
I'm confused.



+ 
+ As an exception, CHARACTER(KIND=C_CHAR) is not 
inter-operable
+ with char in all cases because it is an array while
+ char is scalar.
+ INTEGER(KIND=C_SIGNED_CHAR) should be used instead.
+ In general, this inter-operability can not be implemented, for
+ example, on targets where function passing conventions of arrays
+ differs from scalars.
+  More of type information is now preserved at link-time reducing


s/More of/More/
s/link-time/link time,/


+ the loss of accuracy of the type based alias analysis oracle compared


s/type based/type-based/

Again, is "oracle" implementor-speak?


+ to builds without link time optimization.


s/link time/link-time/


+  Invalid type punning on global variables and declarations is now
+ reported with -Wodr-type-mismatch.
+  The size of LTO object files was reduced by about 11% (measured
+ by compiling Firefox 46.0).
+  Link-time parallelization (enabled using -flto=n)
+ was significantly improved by decreasing the size of streamed
+ data when partitioning program.  The size of streamed


s/program/programs/


+ IL while compiling Firefox 46.0 was reduced by 66%.


"IL" == implementor-speak  Do users care about this statistic, or 
only about increased parallelism?



+  Linker plugin was extended to pass information about type of


s/Linker plugin/The linker plugin


+ binary produced to GCC back-end (that can be also manually controlled


s/GCC back-end/the GCC back end/


+ by -flinker-output).  This makes it possible to
+ properly confiugre code generator and support incremental


s/confiugre/configure/


+ linking. Inremental linking of LTO objects by gcc -r is


s/Iremental/Incremental/


+ now supported on plugin enabled setups. Because code generation 
happens


s/plugin enabled/plugin-enabled/


+ during the incremnetal linking step, the whole program optimization


s/incremnetal/incremental/


+ is not performed. GCC 7 will support incremental IL linking.


"IL" again  what does this mean to users?


+
+Inter-procedural optimization improvements:
+
+  Basic jump threading is now performed before profile construction
+ and inline analysis resulting in more realistic size and time 
estimates


s/analysis/analysis,/


+ that drive heuristics of inliner and function cloning passes.


s/heuristics of/the heuristics of the/


+  

Re: [wwwdocs] Update changes.html

2015-05-11 Thread Marek Polacek
On Mon, May 11, 2015 at 06:04:48PM +0200, Gerald Pfeifer wrote:
 Hi Marek,
 
 On Mon, 11 May 2015, Marek Polacek wrote:
  Ok to commit?
 
 as maintainer I am happy for you to commit documentation/web changes
 without approval, though I am also happy to review.

I was hoping you could glance over it before I commit the patch; and
given the below, I'm glad you did ;).
 
 Here I'm wondering whether the nested list could just be merged
 into the primary item (and I'd omit the colon before enables).

Agreed.  If we have more new options, we can make a list out of it.
 
 a union.  English can be tricky for us non-native speakers at 
 times, since usually you would use an before u, except when 
 that u is pronounced as a consonant or a syllable starting with 
 one.  And the u in union actually is prounced as you-nion.

Yeah, I'm familiar with this rule, and I usually got that right.
Not sure how I goofed it up this time.

Is the following any better?  Thanks,

Index: changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-6/changes.html,v
retrieving revision 1.3
diff -u -r1.3 changes.html
--- changes.html6 May 2015 09:55:29 -   1.3
+++ changes.html11 May 2015 16:16:04 -
@@ -16,15 +16,34 @@
 
 
 !-- .. --
-!-- h2 id=generalGeneral Optimizer Improvements/h2 --
-
+h2 id=generalGeneral Optimizer Improvements/h2
+  ul
+liUndefinedBehaviorSanitizer gained a new sanitization option,
+   code-fsanitize=bounds-strict/code, which enables strict checking
+   of array bounds.  In particular, it enables
+   code-fsanitize=bounds/code as well as instrumentation of
+   flexible array member-like arrays.
+  /ul
 
 !-- .. --
 h2 id=languagesNew Languages and Language specific improvements/h2
 
 !-- h3 id=adaAda/h3 --
 
-!-- h3 id=c-familyC family/h3 --
+h3 id=c-familyC family/h3
+  ul
+liA new command-line option code-Wshift-negative-value/code has been
+   added for the C and C++ compilers, which warns about left shifting
+   a negative value./li
+  /ul
+
+h3 id=cC/h3
+  ul
+liIt is possible to disable warnings when an initialized field of
+   a structure or a union with side effects is being overridden when
+   using designated initializers via a new warning option
+   code-Woverride-init-side-effects/code./li
+  /ul
 
 h3 id=cxxC++/h3
 

Marek


Re: [wwwdocs] Update changes.html

2015-05-11 Thread Gerald Pfeifer
On Mon, 11 May 2015, Marek Polacek wrote:
 Is the following any better?  Thanks,

Yes, this looks fine.

(I admit that flexible array member-like arrays confused me a bit,
but that's probably me not fully getting standards language. ;-)

Gerald


Re: [wwwdocs] Update changes.html

2015-05-11 Thread Gerald Pfeifer
Hi Marek,

On Mon, 11 May 2015, Marek Polacek wrote:
 Ok to commit?

as maintainer I am happy for you to commit documentation/web changes
without approval, though I am also happy to review.

 +h2 id=generalGeneral Optimizer Improvements/h2
 +  ul
 +liUndefinedBehaviorSanitizer gained a new sanitization option:
 +ul
 +  licode-fsanitize=bounds-strict/code: enables strict checking
 +   of array bounds.  In particular, it enables
 +   code-fsanitize=bounds/code as well as instrumentation of
 +   flexible array member-like arrays./li
 +/ul
 +  /ul

Here I'm wondering whether the nested list could just be merged
into the primary item (and I'd omit the colon before enables).

 +liIt is possible to disable warnings when an initialized field of
 + a structure or an union with side effects is being overridden when
 + using designated initializers via a new warning option
 + code-Woverride-init-side-effects/code./li

a union.  English can be tricky for us non-native speakers at 
times, since usually you would use an before u, except when 
that u is pronounced as a consonant or a syllable starting with 
one.  And the u in union actually is prounced as you-nion.

Gerald


Re: [wwwdocs] Update changes.html with libstdc++ changes

2015-04-20 Thread Gerald Pfeifer
On Wed, 8 Apr 2015, Jonathan Wakely wrote:
 The only drawback of this, and some similar cases, is that we now
 risk referring to older versions on a release branch.
 Yes, I realised that problem when making the change and linking to the
 versions that were current at the time. One option would be to add a
 gcc-4.8 symlink that points to the latest gcc-4.8.x version, but that
 adds more work for the release managers and only has a small benefit.

Agreed.

 Alternatively, since we only tend to have four or five releases from a
 branch, we could just update them manually when we remember to. That's
 only necessary until the branch closes, at which point the latest
 release won't change. It's not a huge problem if the links don't go
 to the latest docs immediately IMHO.

Agreed, and agreed.  Let's just keep an eye on it and (try to)
update when a new release of an existing branch comes out.

Gerald


Re: [wwwdocs] Update changes.html with Intel MPX and Pointer Bounds Checker

2015-04-09 Thread Ilya Enkovich
On 09 Apr 12:32, Gerald Pfeifer wrote:
 On Thu, 9 Apr 2015, Ilya Enkovich wrote:
  This adds Pointer Bounds Checker and MPX support to GCC 5 changes. 
  Is it OK?
 
 Nice, thank you!
 
 Can you just replace runtime checks by run-time checks and
 IA-32/x86-64 GNU/Linux target by x86/x86-64 GNU/Linux targets
 (x86, as we had agreed upon recently, and targets, Plural) and
 add the to See Pointer Bounds Checker?
 
 Similarly, can you please add This and the to New extension 
 is available via code-mmpx/code compiler switch in the second
 hunk and also use run-time there?
 
 Go ahead and commit with those changes.
 
 Thanks,G
 Gerald

Thank you for comments!  Here is an updated version to be committed.

Ilya
--

--- changes.html2015-04-09 12:18:47.67230 +0300
+++ changes.html2015-04-09 14:00:43.880487000 +0300
@@ -158,20 +158,29 @@
   licode-fsanitize=alignment/code: enable alignment checking, detect
  various misaligned objects;/li
   licode-fsanitize=object-size/code: enable object size checking, 
detect
  various out-of-bounds accesses./li
   licode-fsanitize=vptr/code: enable checking of C++ member function
  calls, member accesses and some conversions between pointers to base
  and derived classes, detect if the referenced object does not have
  the correct dynamic type./li
 /ul
 /li
+liPointer Bounds Checker, a bounds violation detector, has been added and
+  can be enabled via code-fcheck-pointer-bounds/code.  Memory accesses 
are
+  instrumented with run-time checks of used pointers against their bounds 
to
+  detect pointer bounds violations (overflows).  The Pointer Bounds Checker
+  is available on x86/x86-64 GNU/Linux targets with a new ISA extension
+  Intel MPX support.  See the Pointer Bounds Checker
+  a 
href=https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler;
+   Wiki page/a for more details.
+/li
   /ul
 
 h2 id=languagesNew Languages and Language specific improvements/h2
   ul
 li id=offloada 
href=http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf;
   OpenMP 4.0 specification/a offloading features are now supported by 
the C, C++,
and Fortran compilers. Generic changes:
ul
  liInfrastructure (suitable for any vendor)./li
  liTestsuite which covers offloading from the
@@ -676,20 +685,28 @@
AVX-512{BW,DQ,VL,IFMA,VBMI}/a of Intel's CPU
codenamed Skylake Server was added to GCC.  That includes inline
assembly support, new intrinsics, and basic autovectorization.  These
new AVX-512 extensions are available via
the following GCC switches: AVX-512 Vector Length EVEX feature:
code-mavx512vl/code, AVX-512 Byte and Word instructions:
code-mavx512bw/code, AVX-512 Dword and Qword instructions:
code-mavx512dq/code, AVX-512 FMA-52 instructions:
code-mavx512ifma/code and for AVX-512 Vector Bit Manipulation
Instructions: code-mavx512vbmi/code./li
+   liNew ISA extensions support
+   a 
href=https://software.intel.com/sites/default/files/managed/0d/53/319433-022.pdf;
+   Intel MPX/a was added to GCC.  This new extension is available via the
+   code-mmpx/code compiler switch.  Intel MPX is a set of processor 
features which,
+   with compiler, run-time library and OS support, brings increased 
robustness to
+   software by run-time checking pointer references against their bounds.
+   In GCC Intel MPX is supported by Pointer Bounds Checker and libmpx 
run-time
+   libraries./li
liThe new code-mrecord-mcount/code option for code-pg/code
generates a Linux kernel style table of pointers to mcount or
__fentry__ calls at the beginning of functions. The new
code-mnop-mcount/code option in addition also generates nops in
place of the __fentry__ or mcount call, so that a call per function
can be later patched in. This can be used for low overhead tracing or
hot code patching./li
liThe new code-malign-data/code option controls how
GCC aligns variables.  code-malign-data=compat/code uses
increased alignment compatible with GCC 4.8 and earlier,


Re: [wwwdocs] Update changes.html with Intel MPX and Pointer Bounds Checker

2015-04-09 Thread Gerald Pfeifer
On Thu, 9 Apr 2015, Ilya Enkovich wrote:
 This adds Pointer Bounds Checker and MPX support to GCC 5 changes. 
 Is it OK?

Nice, thank you!

Can you just replace runtime checks by run-time checks and
IA-32/x86-64 GNU/Linux target by x86/x86-64 GNU/Linux targets
(x86, as we had agreed upon recently, and targets, Plural) and
add the to See Pointer Bounds Checker?

Similarly, can you please add This and the to New extension 
is available via code-mmpx/code compiler switch in the second
hunk and also use run-time there?

Go ahead and commit with those changes.

Thanks,G
Gerald


Re: [wwwdocs] Update changes.html with libstdc++ changes

2015-04-08 Thread Gerald Pfeifer

On Sat, 6 Dec 2014, Jonathan Wakely wrote:

This adds recent libstdc++ updates to gcc-5/changes.html


Nice!  Just a most minor change to end a list with a full stop 
instead of a semi-colon.  Applied.


Gerald

Index: changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-5/changes.html,v
retrieving revision 1.94
diff -u -r1.94 changes.html
--- changes.html6 Apr 2015 12:56:40 -   1.94
+++ changes.html8 Apr 2015 06:54:43 -
@@ -456,7 +456,7 @@
liNew random number distributions codelogistic_distribution/code and
  codeuniform_on_sphere_distribution/code as extensions./li
lia 
href=https://sourceware.org/gdb/current/onlinedocs/gdb/Xmethods-In-Python.html;GDB
-  Xmethods/a for containers and codestd::unique_ptr/code;/li
+  Xmethods/a for containers and codestd::unique_ptr/code./li
  /ul

h3 id=fortranFortran/h3


Re: [wwwdocs] Update changes.html with libstdc++ changes

2015-04-08 Thread Jonathan Wakely

On 08/04/15 13:06 +0200, Gerald Pfeifer wrote:

On Sat, 6 Dec 2014, Jonathan Wakely wrote:

I'm also noting one old change in the GCC 4.5 page, and
removing/changing some links to the C++0x status table. The list of
features supported on trunk is fairly irrelevant to someone looking at
the 4.4 release notes, so I've linked to the docs for the relevant
release


This was a good change, thank you.

The only drawback of this, and some similar cases, is that we now
risk referring to older versions on a release branch.  I do not
have a good idea how to best handle this, so for now I updated
references to online documentation to the latest versions (4.8.4
and 4.9.2, respectively).


Yes, I realised that problem when making the change and linking to the
versions that were current at the time. One option would be to add a
gcc-4.8 symlink that points to the latest gcc-4.8.x version, but that
adds more work for the release managers and only has a small benefit.

Alternatively, since we only tend to have four or five releases from a
branch, we could just update them manually when we remember to. That's
only necessary until the branch closes, at which point the latest
release won't change. It's not a huge problem if the links don't go
to the latest docs immediately IMHO.



Re: [wwwdocs] Update changes.html with libstdc++ changes

2015-04-08 Thread Gerald Pfeifer
On Sat, 6 Dec 2014, Jonathan Wakely wrote:
 I'm also noting one old change in the GCC 4.5 page, and
 removing/changing some links to the C++0x status table. The list of
 features supported on trunk is fairly irrelevant to someone looking at
 the 4.4 release notes, so I've linked to the docs for the relevant
 release

This was a good change, thank you.

The only drawback of this, and some similar cases, is that we now
risk referring to older versions on a release branch.  I do not
have a good idea how to best handle this, so for now I updated
references to online documentation to the latest versions (4.8.4 
and 4.9.2, respectively).

Gerald

Index: gcc-4.8/changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.8/changes.html,v
retrieving revision 1.131
diff -u -r1.131 changes.html
--- gcc-4.8/changes.html19 Dec 2014 11:38:57 -  1.131
+++ gcc-4.8/changes.html8 Apr 2015 10:30:59 -
@@ -292,7 +292,7 @@
   h4Runtime Library (libstdc++)/h4
 
   ul
-lia 
href=https://gcc.gnu.org/onlinedocs/gcc-4.8.3/libstdc++/manual/manual/status.html#status.iso.2011;
+lia 
href=https://gcc.gnu.org/onlinedocs/gcc-4.8.4/libstdc++/manual/manual/status.html#status.iso.2011;
Improved experimental support for the new ISO C++ standard, C++11/a,
including:
ul
Index: gcc-4.9/changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.9/changes.html,v
retrieving revision 1.84
diff -u -r1.84 changes.html
--- gcc-4.9/changes.html31 Dec 2014 10:51:19 -  1.84
+++ gcc-4.9/changes.html8 Apr 2015 10:31:00 -
@@ -128,7 +128,7 @@
and starting with the 4.9.1 release also in the Fortran compiler.
The new code-fopenmp-simd/code option can be used to enable OpenMP's
SIMD directives, while ignoring other OpenMP directives. The new a
-   
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Optimize-Options.html#index-fsimd-cost-model-908;
+   
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Optimize-Options.html#index-fsimd-cost-model-908;
code-fsimd-cost-model=/code/a option permits to tune the
vectorization cost model for loops annotated with OpenMP and Cilk
Plus codesimd/code directives; code-Wopenmp-simd/code warns when
@@ -151,7 +151,7 @@
   ul
 liSupport for colorizing diagnostics emitted by GCC has been added.
 The codea
-
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Language-Independent-Options.html#index-fdiagnostics-color-252;
+
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Language-Independent-Options.html#index-fdiagnostics-color-252;
 -fdiagnostics-color=auto/a/code will enable it when
 outputting to terminals, code-fdiagnostics-color=always/code
 unconditionally.  The codeGCC_COLORS/code environment variable
@@ -177,7 +177,7 @@
 /pre/li
 
 liWith the new a
-
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Loop-Specific-Pragmas.html;
+
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Loop-Specific-Pragmas.html;
 code#pragma GCC ivdep/code/a, the user can assert that there are no
 loop-carried dependencies which would prevent concurrent execution of
 consecutive iterations using SIMD (single instruction multiple data)
@@ -383,7 +383,7 @@
   liABI changes:
   ul
 liThe a
-  
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gfortran/Argument-passing-conventions.html;
+  
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/Argument-passing-conventions.html;
   argument passing ABI/a has changed for scalar dummy
  arguments of type codeINTEGER/code, codeREAL/code,
  codeCOMPLEX/code and codeLOGICAL/code, which have
@@ -418,7 +418,7 @@
   controlled by the code-Wzerotrip/code option, which is implied by
   code-Wall/code./li
 liThe new codeNO_ARG_CHECK/code attribute of the a
-  
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gfortran/GNU-Fortran-Compiler-Directives.html;
+  
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/GNU-Fortran-Compiler-Directives.html;
   code!GCC$/code directive/a can be used to disable the
   type-kind-rank (TKR) argument check for a dummy argument. The feature
   is similar to ISO/IEC TS 29133:2012's codeTYPE(*)/code, except that
@@ -452,7 +452,7 @@
 the execution and any exception (but inexact) is signaling, a warning 
is
 printed to codeERROR_UNIT/code, indicating which exceptions are
 signaling. The codea
-
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gfortran/Debugging-Options.html;
+
href=https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/Debugging-Options.html;
 -ffpe-summary=/a/code command-line option can be used to fine-tune
 for which exceptions the warning should be shown./li
   liRounding on input (codeREAD/code) is now 

Re: [wwwdocs] Update changes.html

2014-10-15 Thread Richard Biener
On Wed, Oct 15, 2014 at 12:21 PM, Marek Polacek pola...@redhat.com wrote:
 A trivial patch to document that the C default has been changed.

This should be also mentioned at the toplevel Caveats section.

Richard.

 Applying.

 Index: changes.html
 ===
 RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-5/changes.html,v
 retrieving revision 1.16
 diff -u -r1.16 changes.html
 --- changes.html10 Oct 2014 17:57:52 -  1.16
 +++ changes.html15 Oct 2014 10:20:18 -
 @@ -60,6 +60,7 @@

  h3 id=cC/h3
ul
 +liThe default mode has been changed to code-std=gnu11/code./li
  liA new command-line option code-Wc90-c99-compat/code has been 
 added
 to warn about features not present in ISO C90, but present in ISO
 C99./li

 Marek


Re: [wwwdocs] Update changes.html

2014-10-15 Thread Jakub Jelinek
On Wed, Oct 15, 2014 at 12:50:55PM +0200, Richard Biener wrote:
 On Wed, Oct 15, 2014 at 12:21 PM, Marek Polacek pola...@redhat.com wrote:
  A trivial patch to document that the C default has been changed.
 
 This should be also mentioned at the toplevel Caveats section.

And porting_to.html.

Jakub


Re: [wwwdocs] Update changes.html

2014-10-15 Thread Marek Polacek
On Wed, Oct 15, 2014 at 12:50:55PM +0200, Richard Biener wrote:
 On Wed, Oct 15, 2014 at 12:21 PM, Marek Polacek pola...@redhat.com wrote:
  A trivial patch to document that the C default has been changed.
 
 This should be also mentioned at the toplevel Caveats section.

Ok, I'll commit the following as well.

Index: changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-5/changes.html,v
retrieving revision 1.17
diff -u -r1.17 changes.html
--- changes.html15 Oct 2014 10:22:16 -  1.17
+++ changes.html15 Oct 2014 11:08:35 -
@@ -12,7 +12,11 @@
 h1GCC 5 Release Seriesbr /Changes, New Features, and Fixes/h1
 
 
-!-- h2Caveats/h2 --
+h2Caveats/h2
+  ul
+liThe default mode for C is now code-std=gnu11/code instead of
+code-std=gnu89/code./li
+  /ul
 
 h2 id=generalGeneral Optimizer Improvements/h2
 

Marek


Re: [wwwdocs] Update changes.html

2014-10-15 Thread Marek Polacek
On Wed, Oct 15, 2014 at 12:51:41PM +0200, Jakub Jelinek wrote:
 And porting_to.html.

I plan to prepare porting to this week.

Marek