On Mon, 18 Nov 2013, Jan Hubicka wrote: > there was many changes in this area. The following are ones I can think > of. Please fell free to suggest more changes. We probably should mention > Teresa's splitting work once it is complete and new micro-architectures > targetd by x86 backend.
Yes, those definitely are good additional changes. Thanks for taking the time to write these up (apart from the time to actually hack much of it). :-) > Index: changes.html > =================================================================== > + <li>Type merging was rewritten. New implementation is significantly > faster > + and use less memory. "The new implementation" "uses less memory" > + <li>Better partitioning algorithm resulting in less streaming during > + link-time.</li> "link time" > + <li>Early removal of virtual methods reduce size of object files and > + improve link-time memory usage and compile time.</li> "reduces the size of object files and improves" > + <li>Functions are no longer pointlessly renamed.</li> Readers may struggle a bit with this. What does it refer to? > + <li>Function bodies are now loaded on-demand and released early > improving > + overall memory usage at link-time.</li> "link time" > + </ul> > + Memory usage of Firefox build with debug enabled was reduced from 15GB to > + 3.5GB. Link time from 1700 seconds to 350 seconds. "Memory usage building Firefox" Perhaps specify the version number? If you want to write the second sentence without a verb, I suggest "; link time..." > + <li>New type inheritance analysis module improving devirtualization. > + Devirtualization now take into account anonymous name-spaces and the > + C++11 <code>final</code> keyword.</li> "takes into account" > + <li>Calls that was speculatively made direct are turned back to > indirect > + when doing so does not bring any noticeable benefits.</li> "was" -> "were" Also this sentence is a bit confusing. It can be read that turning back the calls does not bring noticable benefits. > + <li>Local aliases are introduced for symbols that are known to be > + semantically equivalent across shared libraries improving dynamic > + linking times.</li> ", improving" > + <li>New time profiling determine typical order in which functions are > executed.</li> "determines", and can you break the long line? > + <li>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> "A new function reordering..." "link-time optimization" > + <li>Better inlining of <code>memcpy</code> and <code>memset</code> > + that is avare of value ranges and produce shorter alignment prologues. "aware" "produces" > + for portions of program optimized for size.</li> "of programs" Cheers, Gerald