Re: [wwwdocs] Update changes.html for LTO and IPA
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
> 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
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
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
> >+ 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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