GCC 9.1 Released As Huge Compiler Update With D Language, Zen 2, OpenMP 5, C++2A, C2X

Written by Michael Larabel in GNU on 3 May 2019 at 05:53 AM EDT. 57 Comments
GNU
GNU Compiler Collection 9.1 was released today with a D language front-end joining the family while on the back-end is now the long-awaited Radeon GCN GPU target (although not too useful in its current form), Intel Cascadelake support, initial AMD Zen 2, C-SKY CPU support, OpenRISC CPU support, and many other features throughout this massive open-source compiler.

GCC 9.1 was released this morning as the first stable release in the GCC 9 series. GCC 9 is easily one of the most exciting GCC compiler updates in years and comes with many new features and improvements. After closely following its development the past year, it's great to see GCC 9.1 now out there. GCC 9 is already found in the likes of Fedora 30, Clear Linux, and other Linux distributions should begin making use of this big compiler update in their next release cycles (or hopefully soon for the rolling-release platforms).

Among the many changes to find in GCC 9 are:

- The D programming language front-end has finally been mainlined in GCC! There is now D support beginning with GCC 9.

- Initial AMD GCN back-end has been merged for targeting Radeon Fiji/Vega GPUs although the actual OpenMP/OpenACC offloading and other functionality isn't yet in place. For GCC 9, the AMD GCN target can only handle single-threaded, standalone programs which obviously isn't of much use for GPUs.

- Initial AMD Zen 2 processor support (-march=znver2) although the Znver2 code isn't yet fully tuned for these next-generation AMD Ryzen and EPYC processors debuting in a few months.

- Initial support for the Arm Neoverse N1 processors along with other existing AArch64 Cortex processors.

- Initial support for Intel Cascadelake server processors with AVX-512 VNNI (DL BOOST) via the -march=cascadelake flag.

- The C-SKY processor support was introduced for these Chinese 32-bit processors. Over the past year C-SKY support has landed in the Linux kernel and other areas as well.

- The OpenRISC processor support also was merged after being rewritten in order to satisfy the FSF copyright assignment requirements for code contributions had left the Berkeley lawyers initially unhappy with the original OpenRISC port.

- Initial support for OpenMP 5.0.

- Nearly complete support for the OpenACC 2.5 specification.

- A new option for live-patching to help ensure the generated code will work well into the semantics of live Linux kernel patching.

- Better Bash auto-completion support.

- Various diagnostic improvements and the option of dumping diagnostics/errors into JSON format.

- Experimental support for C++2A is exposed via the "-std=c++2a" switch for this next revision of C++ likely to be called C++20. There is also work done on the C++ standard library side (libstdc++) and other bits while for C++17 is the initial parallel algorithms implementation.

- Along similar lines, there is also experimental support for C2X as the next C language revision and that is exposed via the -std=c2x switch.

- Fortran support in GCC has also been improved with now handling asynchronous I/O and other features.

- Inter-procedural optimizations (IPO), profile-driven optimizations, link-time optimizations (LTO), and a variety of other optimizations in trying to ensure better generated code.

I'll have more GCC 9 compiler benchmarks soon while those wanting to build this big compiler update while enjoying their morning coffee can find it 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