> > + <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>