On Mon, 19 Mar 2018, Jan Hubicka wrote: > Hi, > this patch adds some documentation for what is new in IPA and x86. > For lto we should mention early-debug. Richard, perhaps you can suggest > wording?
I have committed the following (will happily edit if necessary). Richard. 2018-03-20 Richard Biener <rguent...@suse.de> * changes.html: Mention early LTO debug, -floop-nest-optimize improvements, -floop-unroll-and-jam, -floop-interchange, -fstack-clash-protection and adjust the -fno-strict-overflow entry for the new -fwrapv-pointer. Index: changes.html =================================================================== RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-8/changes.html,v retrieving revision 1.45 diff -u -r1.45 changes.html --- changes.html 19 Mar 2018 23:53:35 -0000 1.45 +++ changes.html 20 Mar 2018 08:17:45 -0000 @@ -68,6 +68,13 @@ bodies into hot and cold regions, is now enabled by default at <code>-O2</code> and higher for x86 and x86-64.</li> </ul> + <li>Link-time optimization improvements: + <ul> + <li>On ELF targets using DWARF debug information has been significantly + improved in quality by properly preserving language-specific + debug information. This allows for example the libstdc++ + pretty-printers to work with LTO optimized executables.</li> + </ul> <li> A new option <code>-fcf-protection=[full|branch|return|none]</code> is introduced to perform code instrumentation to increase program security by @@ -77,6 +84,25 @@ guide for further information about the option syntax and section "New Targets and Target Specific Improvements" for IA-32/x86-64 for more details. </li> + <li> + The polyhedral-based loop nest optimization pass + <code>-floop-nest-optimize</code> has been overhauled. It's still + considered experimental and may not result in any runtime improvements. + </li> + <li> + Two new classical loop nest optimization passes have been added. + <code>-floop-unroll-and-jam</code> performs outer loop unrolling + and fusing of the inner loop copies. <code>-floop-interchange</code> + exchanges loops in a loop nest to improve data locality. Both passes + are enabled by default at <code>-O3</code> and above. + </li> + <li> + The new option <code>-fstack-clash-protection</code> causes the + compiler to insert probes whenever stack space is allocated + statically or dynamically to reliably detect stack overflows and + thus mitigate the attack vector that relies on jumping over + a stack guard page as provided by the operating system. + </li> </ul> @@ -139,8 +165,8 @@ </ul> </li> <li><code>-fno-strict-overflow</code> is now mapped to - <code>-fwrapv</code> and signed integer overflow is now undefined by - default at all optimization levels. Using + <code>-fwrapv -fwrapv-pointer</code> and signed integer overflow + is now undefined by default at all optimization levels. Using <code>-fsanitize=signed-integer-overflow</code> is now the preferred way to audit code, <code>-Wstrict-overflow</code> is deprecated.</li> </ul>