We have reached zero P1 regressions today (and < 100 important regressions) and the branches/gcc-4_9-branch has been created today and GCC 4.9.0-rc1 built and announced.
- 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 next release of GCC will have their sources permanently removed.
- AddressSanitizer, a fast memory error detector, is now available on ARM.
- UndefinedBehaviorSanitizer (ubsan), a fast undefined behavior detector, has been added and can be enabled via -fsanitize=undefined. Various computations will be instrumented to detect undefined behavior at runtime. UndefinedBehaviorSanitizer is currently available for the C and C++ languages.
- Major Link-time optimization (LTO) improvements. Memory usage building Firefox with debug enabled was reduced from 15GB to 3.5GB; link time from 1700 seconds to 350 seconds.
- Version 4.0 of the OpenMP specification is now supported for the C and C++ compilers. The new -fopenmp-simd option can be used to enable OpenMP's SIMD directives, while ignoring other OpenMP directives. The new -fsimd-cost-model= option permits to tune the vectorization cost model for loops annotated with OpenMP and Cilk Plus simd directives; -Wopenmp-simd warns when the current costmodel overrides simd directives set by the user.
- Support for colorizing diagnostics emitted by GCC has been added. The -fdiagnostics-color=auto will enable it when outputting to terminals, -fdiagnostics-color=always unconditionally. The GCC_COLORS environment variable can be used to customize the colors or disable coloring.
- ISO C11 atomics, thread-local storage, generic selections are now supported.
- A new C extension __auto_type provides a subset of the functionality of C++11 auto in GNU C.
- G++ supports C++1y lambda capture initializers, polymorphic lambdas, variable length arrays, and digit separators.
- Improved support for C++11, improved experimental support for the upcoming ISO C++ standard, C++14.
- GCC 4.9 provides a complete implementation of the Go 1.2.1 release.
- A number of infrastructural changes have been made to both the ARM and AArch64 backends to facilitate improved code-generation.
- Intel AVX-512 support was added to GCC. That includes inline assembly support, new registers and extending existing ones, new intrinsics (covered by corresponding testsuite), and basic autovectorization. AVX-512 instructions are available via the following GCC switches: AVX-512 foundation instructions: -mavx512f, AVX-512 prefetch instructions: -mavx512pf, AVX-512 exponential and reciprocal instructions: -mavx512er, AVX-512 conflict detection instructions: -mavx512cd.
- Better inlining of memcpy and memset that is aware of value ranges and produces shorter alignment prologues.
- GCC now supports the new Intel microarchitecture named Silvermont through -march=silvermont, Broadwell through -march=broadwell, optimizing for other Intel microarchitectures have been renamed to -march=nehalem, westmere, sandybridge, ivybridge, haswell, bonnell.