GCC 9.1がリリース - D言語のサポートなど多数の新機能が追加

S 20190504 95802

GNU GCC開発プロジェクトは4月25日(現地時間)、GCC 9シリーズの最初の安定版となる「GCC 9.1」をリリースしました(アナウンスPhoronix)。

GCC 9.1ではD言語のフロントエンドがファミリに追加されたほか、バックエンドでは待望のRadeon GCN GPUターゲットが追加されています。またIntel Cascadelakeや、AMD Zen 2、C-SKY CPU、OpenRISC CPUなど、最新のCPUのサポートも進められています。


- 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.


GCC 9シリーズ(GCC 9.0.1)はすでに先日公開されたFedora 30などですでに採用されていますが、GCC 9.1が公開されたことで今後多くのLinuxディストリビューションでさらにGCC 9の採用が進められていくことが期待されます。