> > +      <li>Functions are no longer pointlessly renamed.</li>
> 
> Readers may struggle a bit with this.  What does it refer to?

We previously renamed every static function foo into foo.1234
(just as a precaution because other compilation unit may have also function 
foo).
This confuses many thins, so now we do renaming only when we see a conflict.

I am attaching the changes I comitted.

I dropped this from news changes.  In meantime we merged in the change enabling
slim LTO files by defualt, what about:

Index: changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.9/changes.html,v
retrieving revision 1.41
diff -c -p -r1.41 changes.html
*** changes.html        28 Nov 2013 15:05:51 -0000      1.41
--- changes.html        28 Nov 2013 16:53:37 -0000
***************
*** 15,20 ****
--- 15,25 ----
  <h2>Caveats</h2>
  
    <ul>
+     <li>Because <code>-fno-fat-lto-objects</code> is now by default,
+       <code>gcc-ar</code> and <code>gcc-nm</code> wrappers needs
+       to be used to handle objects compiled with <code>-flto</code>.
+       Additionally the resulting binary needs to be linked with
+       <code>-flto</code> (and appropriate optimization flags).</li>
      <li><p>Support for a number of older systems and recently
      unmaintained or untested target ports of GCC has been declared
      obsolete in GCC 4.9.  Unless there is activity to revive them, the
***************
*** 45,50 ****
--- 50,61 ----
      </li>
      <li>Link-time optimization (LTO) improvements:
      <ul>
+       <li>Slim LTO objects are now used by default.  This means that with
+         <code>-flto</code> GCC will no longer produce non-LTO optimized binary
+         in addition to storing object representation in the intermediate
+         language. Consequently <code>-flto</code> no longer causes everything
+         to be optimized twice (once at compile time and again during link 
time).
+         This feature can be controlled by <code>-ffat-lto-objects</code>.</li>
        <li>Type merging was rewritten. The new implementation is significantly 
faster
          and uses less memory. 
        <li>Better partitioning algorithm resulting in less streaming during
Index: changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.9/changes.html,v
retrieving revision 1.40
diff -r1.40 changes.html
40,41d39
<   </ul>
<   <ul>
47a46,85
>     <li>Link-time optimization (LTO) improvements:
>     <ul>
>       <li>Type merging was rewritten. The new implementation is significantly 
> faster
>         and uses less memory. 
>       <li>Better partitioning algorithm resulting in less streaming during
>         link time.</li>
>       <li>Early removal of virtual methods reduces the size of object files 
> and
>         improves link-time memory usage and compile time.</li>
>       <li>Function bodies are now loaded on-demand and released early 
> improving
>         overall memory usage at link time.</li>
>       <li>C++ hidden keyed methods can now be optimized out.</li>
>     </ul>
>     Memory usage building Firefox with debug enabled was reduced from 15GB to
>     3.5GB; link time from 1700 seconds to 350 seconds.
>     </li>
>     <li>Inter-procedural optimization improvements:
>     <ul>
>       <li>New type inheritance analysis module improving devirtualization.
>         Devirtualization now takes into account anonymous name-spaces and the
>         C++11 <code>final</code> keyword.</li>
>       <li>New speculative devirtualization pass (controlled by
>         <code>-fdevirtualize-speculatively</code>.</li>
>       <li>Calls that were speculatively made direct are turned back to 
> indirect
>         where direct call is not cheaper.</li>
>       <li>Local aliases are introduced for symbols that are known to be
>         semantically equivalent across shared libraries improving dynamic
>         linking times.</li>
>     </ul>
>     <li>Feedback directed optimization improvements:
>     <ul>
>       <li>Profiling of programs using C++ inline functions is now more 
> reliable.</li>
>       <li>New time profiling determines typical order in which functions are
>         executed.</li>
>       <li>A new function reordering pass (controlled by
>         <code>-freorder-functions</code>) significantly reduces
>         startup time of large applications.  Until binutils support is
>         completed, it is effective only with link-time optimization.</li>
>       <li>Feedback driven indirect call removal and devirtualization now 
> handle
>         cross-module calls when link-time optimization is enabled.</li>
>     </ul></li>
337c375
<     <li> GCC now supports the new Intel microarchitecture named Silvermont
---
>     <li>GCC now supports the new Intel microarchitecture named Silvermont
339a378,388
>     <li><code>-march=generic</code> has been retuned for better support of
>       Intel core and AMD Bulldozer architectures.  Performance of AMD K7, K8,
>       Intel Pentium-M, and Pentium4 based CPUs is no longer considered 
> important
>       for generic.
>     </li>
>     <li>Better inlining of <code>memcpy</code> and <code>memset</code> 
>       that is aware of value ranges and produces shorter alignment prologues.
>     </li>
>     <li><code>-mno-accumulate-outgoing-args</code> is now honored when unwind
>       information is output.  Argument accumulation is also now turned off
>       for portions of programs optimized for size.</li>

Reply via email to