この新しいバージョンのGCCコンパイラ 数日前に新機能とバグ修正で利用可能になりました。
GNU GCCプロジェクトチームによると、この新しいバージョンは、 バージョン9.1はメジャーコンパイラバージョンです GCC8.x以前のバージョンでは利用できない重要な新機能が含まれています。 GCC9.1は新しい言語機能をもたらすはずです、ソフトウェアの新しい最適化といくつかのパフォーマンスの改善。
GCCについて
GCC コンパイラコレクションです GNUプロジェクトによって作成されました。 それはより正確にはフリーソフトウェアです C、C ++、Objective-C、Java、Ada、Fortranなどのさまざまなプログラミング言語をコンパイルできます。
また、注意する必要があります ほとんどのフリーソフトウェアの開発に使用されます。 最新のメジャーコンパイラリリースは、2018年8.1月のバージョンXNUMXにさかのぼります。
RedHat開発者のJakubJelinekは、GCC 8.1は、GCC7.x以前のバージョンのGCCでは利用できない重要な新機能をもたらすメジャーリリースであると説明しました。
この時点で、C ++フロントエンドは、-std = c ++ 2aおよび-std = gnu ++ 2aオプションを使用していくつかのC ++ 2a関数の実験的なサポートを提供しています。
一般的な改善レベルのバージョン8.2では、大きなバイナリファイルの作成中のパーティショニングアルゴリズムのオーバーフローによるLTO(リンク時間最適化)のパフォーマンスの問題が修正されました。
修正は、昨年8月のコンパイラバージョン8.3のリリースとともに、8.2.xブランチで継続されました。 このリリースは、以前のバージョンのGCCと比較したGCCXNUMXのリグレッションのパッチを含むバグ修正リリースでした。 GCCチームは、3月9日に新しいブランチを立ち上げ、バージョンXNUMXをリリースしました。
GCC 9.1の新機能は何ですか?
このバージョンでは、 コンパイラバージョン17が使用されなくなったため、C ++ 8.1のサポートが導入されましたl。 したがって、C ++ 17のサポートは安定しています。
のインターフェース C ++はC ++ 17の言語全体を実装します C ++標準ライブラリのサポートは間もなく完了します。
El フロントエンドおよびC ++ライブラリには、C ++ 2aからコード化された他の多くの機能もあります。。 また、GCCにはD言語用の新しいインターフェイスがあり、OpenMP 5.0を部分的にサポートし、OpenACC2.5のサポートをほぼ完全に統合しています。
多くの人にとって、GCC 9は、開発者のパフォーマンスを向上させるための優れた機能と拡張機能を提供するコンパイラの強力なバージョンです。
GCC9.1の多くの新機能には次のものがあります。
- Dプログラミング言語で記述されたコードのコンパイルのサポートのサポート。
- 新しいAMDGCNGPUバックエンドがGCCに追加されました。 現在、実装はシングルスレッドプログラムのコンパイルに限定されています。
- LRAは、ARCターゲットに対してデフォルトで有効になりました。 これは-mlraで制御できます。
- イメージコードとブランチおよびインデックス密度ステートメントのサポートが追加されました。
- GCCに追加されたのは、C-SKYV2プロセッサをターゲットとする新しいバックエンドの追加です。
- IntelMPXサポートは削除されました。
- OpenRISCプロセッサをサポートするための新しいバックエンドが追加されました。
- OpenACC2.5仕様のサポートはほぼ完了しています。
- GCCの内部「セルフテスト」パッケージは、C ++およびC(コンパイラのデバッグバージョン)で機能するようになりました。
- GCCでのFortranサポートも改善されました。 現在、非同期I / Oおよびその他の機能を処理します。
- インタープロセッシング最適化(OPI)、プロファイルベースの最適化、リンク時間の最適化(LTO)、およびその他の多くの最適化により、コードの品質が向上します。
- 66コアマシンでのFirefox6.2.3およびLibreOffice8の合計コンパイル時間は、GCC 5と比較して約8.3%短縮されました。 LTOオブジェクトファイルのサイズは7%削減されます。
- LTOリンク時間は11コアマシンで8%向上し、より並列な構築環境で劇的に進化します。 リンク時間最適化のシリアルステージは28%速く、20%少ないメモリを消費します。 Parallel Stageは、128パーティションではなく32パーティションをパーティション分割し、各ユーザーのメモリ使用量を30%削減します。
- 機械可読形式の診断用に、新しいオプション「-fdiagnostics-format = json」が導入されました。