GCC 5 Is Coming This Month With OpenMP 4.0, Offloading, Cilk Plus & More

Written by Michael Larabel in GNU on 6 April 2015 at 12:45 PM EDT. 10 Comments
GNU
GCC 5 is expected to be formally released later this month and it by far is looking to be the most exciting GNU Compiler Collection update yet! GCC 5 has amassed a ton of exciting open-source compiler features over the past year.

Here's a look at some of the features that get me the most excited about GCC 5.0:

- The GCC C compiler now defaults to GNU11 (C11) rather than GNU89 (C89)! LLVM's Clang compiler took a similar move but at least before they were on C99.

- Optimization improvements! The inter-procedural optimizations include a new Identical Code Folding (ICF) pass for unifying identical functions, virtual tables are now optimized, write-only variables are now detected and optimized out, and many other optimizations.

- Memory usage and link times were improved when enabling link-time optimizations (LTO).

- OpenMP 4.0 is fully-supported by GCC 5 for C, C++, and Fortran. The OpenMP 4.0 support also includes initial offloading support, including early support for upcoming Intel Xeon Phi MICs.

- GCC C and C++ now supports Intel's Cilk Plus parallel programming interface.

- New _has_include and _has_include_next pre-processor constructs for attempting to include header files only if they are present on the system.

- GCC 5's C++ support now includes many C++14 features from variable templates to aggregates with non-static data member initializers, sized deallocation functions, and much more.

- GCC 5's libstdc++ library has full support for C++11 and experimental support for C++14.

- GCC 5's Go language support has complete support for Go 1.4.2.

- GCC 5 adds initial support for its Just-In-Time (JIT) compilation via the new libgccjit library. Libgccjit is finally in mainline, but it's still considered an experimental option for this release as an embeddable JIT compiler.

- Improved 64-bit ARM (AArch64) code generation for the Cortex-A57 and A53. There's also new support for the ARM Cortex-A72 (and with a A53 big.LITTLE design), the Cavium ThunderX, and Applied Micro X-Gene 1. Within the 32-bit ARM world is support for the new AArch64 processors when on a 32-bit stack along with the new Cortex-A17 processor.

- AVX-512 support for Intel's future Skylake server processors.

- MIPS Release 3 and 5 and 6 are now supported. There's also support for the Cavium Octeon 3 and Imagination P5600 MIPS processors.

- GCC is now officially supported on DragonFlyBSD.

You can find out more about the upcoming GCC 5.0 release via our dozens of GCC 5 articles over the past year on Phoronix along with the lengthy release notes documented at gcc.gnu.org.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week