The New Compiler Features & Changes Of GCC 8
The official GCC 8 changes documentation remains quite bare but will be filled in by GNU Compiler Collection developers as the update nears. But in our original reporting and monitoring of GCC 8 development, some of the highlights we have to share include:
- More tuning of AMD znver1 support for yielding better performance on Ryzen / Threadripper / EPYC processors.
- Cannonlake support, the next-gen Intel CPU succeeding Coffee Lake / Kaby Lake Refresh. Exciting from the compiler side is all "Core" Cannonlake CPUs should support AVX-512.
- Initial support for Intel Icelake, the CPU generation to succeed next year's Cannonlake. This includes GFNI instructions and more.
- Intel CET support: Control-flow Enforcement Technology for better security.
- Qualcomm Saphira CPU support. Qualcomm Saphira is the next-gen core succeeding the current generation Falkor core found within the new Centriq SoCs.
- C17 language support.
- Initial work towards C++20 / C++2A.
- ARMv8-R support. This subset of the ARMv8 architecture is intended for real-time applications and safety-critical environments like automotive and industrial control and aviation.
- There's also been additional ARM tuning for the newer Cortex processors.
- Greater OpenACC 2.5 support.
- Updated Golang, the Go programming language support found within GCC.
- Continued improvements for AMD HSA IL / BRIG support.
- Cilk Plus is being removed.
- Significant improvements to the Nios II compiler back-end.
If there are any other interesting GCC 8 changes I missed out on, feel free to point them out in the forums. I'll be publishing some new GCC 8 benchmarks soon on Phoronix and will continue with our coverage ahead of its release next March~April.