Jakub Jelinek of Red Hat wrote in the release announcement, "One year and one month passed from the time when the last major version of the GNU Compiler Collection has been announced, so it is the time again to announce a new major GCC release, 4.9.0. GCC 4.9.0 is a major release containing substantial new functionality not available in GCC 4.8.x or previous GCC releases."
Some of our favorite highlights with having been testing and using the GCC 4.9 compiler for several months already during development include:
- OpenMP 4.0 support as the latest upstream specification for multi-core programming. Meanwhile, LLVM/Clang lacks any form of mainline OpenMP support (albeit there's an out-of-tree branch).
- Significantly improvements to its link-time optimization support and other code optimizers like inter-procedural optimization and feedback-directed optimizations.
- Colored diagnostics output.
- ISO C11 language improvements.
- Significant work on the preliminary C++1y (C++14) support.
- Google Go 1.2.1 language support.
- Significant ARM improvements, including a new local register allocator used for its AArch64 tareget, tuning for Cortex-A53 and Cortex-A57 SoCs is improved, initial big.LITTLE tuning, and other ARM enhancements.
- Intel AVX-512 support. When it comes to GCC 4.9 with Intel hardware is also Silvermont tuning support and optimization/tuning support for upcoming Broadwell CPUs.
- Improvements in GCC 4.9 for AMD hardware include tuning/optimization support for Excavator CPU cores (bdver4).
- IBM's Power8 processors are now supported too and the Power ISA 2.07 specification.
Other features for the GCC 4.9 compiler are outlined via the GNU.org change-log and our earlier GCC 4.9 feature overview. We've already carried out some GCC 4.9 benchmarks compared to earlier releases of the GCC compiler as well as LLVM/Clang. More x86/ARM GCC compiler testing is forthcoming on Phoronix.