The Prominent Changes For The GCC 4.7 Compiler

Posted by Michael Larabel on March 15, 2012

With GCC 4.7 being released soon, new compiler benchmarks at Phoronix will be published in the coming weeks (beginning next week Monday), but for those wondering what's different on the feature side, here's a look.

Most of the key GCC 4.7 features have already been talked about in a number of different Phoronix articles, but here's a concise summary of what to expect from this open-source compiler collection.

- Several LTO (Link-Time Optimization) improvements. In particular, there's improved scalability and reduced memory usage, reduced object file size, stream performance improvements, and several bug-fixes. Using LTO while building Firefox now only takes up 3GB of RAM where as previously 8GB was needed for optimizing the browser. The linking time itself is also shorter now, with claims of Firefox being sped up by about a factor of 10.

- Other optimization work: Interprocedural optimization improvements and a string-length optimization pass.

- IRIX 6.5, MIPS OpenBSD, Solaris 7, and Tru64 UNIX v5.1 have been obseleted with GCC 4.7. Unless any of those ports reach a maintained state by GCC 4.8, they will be eliminated.

- Experimental support for transactional memory with the C compiler and the supporting libitm run-time library. This transactional memory support is available at this point for x86_32, x86_64, and Alpha platforms.

- Better support for the C++11 and C11 languages (there's also some C99 changes), such as support for atomic operations in their new memory model. With C11 there's also support for Unicode strings, non-returning functions, alignment support, and support for the C library implementation of the CMPLX family of macros. The C++11 support improvements include implementing extended friend syntax, explicit override control, non-static data member initializers, user-defined literals, alias-declarations, delegating constructors, and atomic classes.

- Major Google Go language improvements.

- The libstdc++ run-time library also has experimental support for C++11.

- Various Fortran language improvements.

- Support for ARM Cortex-A7 processors using the -mcpu=cortex-a7 switch.

- Support for Texas Instruments C6X processors.

- Support for Tilera TILE-Gx and TILEPro processors.

- Support for Intel Ivy Bridge processors. The support improvements come via building upon the existing Intel Sandy Bridge CPU support and added support for Bull Mountain (RDRND; the new random number generator), FSGSBASE, and F16C extensions. The Intel Ivy Bridge CPU support in the GCC compiler can be tapped via -march=core-avx-i. The first Ivy Bridge hardware will begin shipping in a few months.

- Going out even further, preliminary support for Intel Haswell processors has been added. Haswell won't be here for another year, but GCC 4.7 introduces support for AVX2, FMA, BMI, BMI2, and LZCNT instructions as to be first-introduced with Haswell processors. This support comes via the -march=core-avx2 flag. Find out more by reading Compilers Mature For Intel Sandy/Ivy Bridge, Prep For Haswell.

- Initial support for AMD family 15h "Piledriver" processors via -march=bdver2. The first Piledriver-based AMD Fusion APUs are expected to arrive soon with AMD Trinity.

The full list of official changes for GCC 4.7 can be found out via this GNU.org page. Meanwhile, there's already new feature work towards GCC 4.8. New Phoronix benchmarks of GCC 4.7 are coming soon.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Intel Haswell HD Graphics 4600 vs. AMD Radeon Graphics On Linux
  2. Intel Haswell HD Graphics 4600 Performance On Ubuntu Linux
  3. Intel Core i7 4770K "Haswell" Benchmarks On Ubuntu Linux
  4. The First Experience Of Intel Haswell On Linux
Latest Software Articles
  1. Optimized Binaries Provide Great Benefits For Intel Haswell
  2. 11-Way Linux, BSD Platform Comparison
  3. SNA Acceleration Works Great For Intel Core i7 Haswell
  4. The Linux Evolution For Intel Haswell's Performance
Latest Linux News
  1. Planetary Annihilation Released For Linux Gamers
  2. Gentoo Starts Work On KDE-Wayland Support
  3. NVIDIA To License Its Kepler GPU Technology
  4. KDE's KWin Made Lots Of Progress In 4.11
  5. Ubuntu Announces Carrier Advisory Group
  6. Qt 5.1 Release Candidate 1 Has Arrived
  7. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  8. Subversion 1.8 Presents New Features
  9. LLVM 3.3 Officially Released
  10. LLVM/Clang Now Uses Loop Vectorizer At New Levels
  11. Intel GPU Driver Tries To Rip Out FBDEV Support
Latest Forum Talk
  1. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  2. The Wayland Situation: Facts About X vs. Wayland
  3. Intel GPU Driver Tries To Rip Out FBDEV Support
  4. Ubuntu Announces Carrier Advisory Group
  5. Intel Haswell HD Graphics 4600 vs. AMD Radeon...
  6. Planetary Annihilation Plans To Come To Linux
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite