GCC 12.1はすでにリリースされており、そのニュースと35周年を知っています

GNUGCCロゴ

の打ち上げ コンパイラの新しいバージョン GCC (GNUコンパイラコレクション) 12.1はすでにリリースされています また、GCCのすべてのメジャーリリースと同様に、このリリースでは多くの追加、改善、バグ修正、新機能が提供されます。さらに、今月(23月35日)、プロジェクトは最初のリリースの作成からXNUMX年を迎えます。

GCC12はすでにFedora36のシステムコンパイラであり、GCC12はRedHat Developer Toolset(バージョン7)またはRed Hat GCC Toolset(バージョン8および9)のRed HatEnterpriseLinuxでも利用できるようになります。

GCC開発者は、GCCの別のメジャーリリースである12.1を発表できることを誇りに思います。

今年は、GCCの最初のベータ版の35周年を祝います
そして今月はGCC35のリリースから1.0周年を迎えます!

このリリースでは、STABSデバッグ形式のサポートが終了します。
CTFデバッグ形式のサポートを導入します[1]。 CおよびC++
インターフェイスは、機能のサポートが拡張されて進歩し続けています
今後のC2XおよびC++23標準とC++標準ライブラリ
C++20およびC++23の実験部分のサポートを改善します。
現在、Fortranインターフェースは、Cとの相互運用性のためにTS29113に完全に準拠しています。

GCC 12.1の新機能は何ですか?

この新しいバージョンでは いくつかの提案が実施されました、言語など CおよびC++、追加 組み込み関数__オブジェクトのサイズを決定するbuiltin_dynamic_object_size、Clangの同様の機能と互換性があります。

追加 CおよびC++言語の「使用不可」属性のサポート (たとえば、使用時にエラーが発生する関数にマークを付けることができます)。また、CおよびC++言語の「#elifdef」および「#elifndef」前処理ディレクティブのサポートが追加されました。

また、 「-Wbidi-chars」フラグは、UTF-8文字が誤用された場合に警告します、双方向テキストの表示順序を変更し、「-Warray-compare」フラグを変更して、配列を参照するXNUMXつのオペランドを比較しようとしたときに警告を発行します。

さらに、私はOpenMP5.0および5.1標準の実装 共有メモリとベクトル化ユニット(SIMD)を備えたマルチコアおよびハイブリッド(CPU + GPU / DSP)システムに並列プログラミング手法を適用するためのAPIと手法を定義する(Open Multi-Processing)が継続されました。

また、 OpenACC2.6並列プログラミング仕様の実装の改善。 GPUおよびNVIDIAPTXなどの特殊なプロセッサでの操作をオフロードする手段を定義し、IntelAVX512-FP16拡張命令および_Float16タイプのサポートをx86コード生成バックエンドに追加します。

Fortranフロントエンドは、FortranとCコード間の移植性を確保する可能性を説明するTS29113仕様を完全にサポートします。

1980年代に作成された「STABS」デバッグ情報ストレージ形式のサポートは廃止されました。

以前にClangに追加された__builtin_shufflevector(vec1、vec2、index1、index2、…)拡張機能のサポートが追加されました。これにより、一般的なベクトルシャッフルおよびシャッフル操作を実行するための単一の呼び出しが提供されます。

「-O2」最適化レベルを使用する場合、ベクトル化はデフォルトで有効になっています(-ftree-vectorizeおよび-fvect-cost-model = very-cheapモードが有効になっています)。 「非常に安価な」モデルでは、ベクトルコードがベクトル化可能なスカラーコードを完全に置き換えることができる場合にのみ、ベクトル化が可能です。

「-ftrivial-auto-var-init」モードを追加しました スタックで明示的な変数の初期化を有効にして、初期化されていない変数の使用に関連する問題を追跡し、脆弱性をブロックします。

追加しました コンパイラに組み込まれたC関数の実装 (組み込み関数)拡張ARM命令(ls64)の使用に基づく、メモリ内のアトミックロードおよびデータストレージ用。 ARM mopoption拡張機能を使用して、memcpy、memmove、およびmemset関数を高速化するためのサポートが追加されました。

追加 新しい検証モード「-fsanitize=shadow-call-stack」(ShadowCallStack)、 これは現在AArch64アーキテクチャでのみ使用可能であり、「-fixed-r18」オプションを使用してコードをコンパイルするときに機能します。 このモードは、スタックバッファオーバーフローが発生した場合に関数のリターンアドレスを書き換えないように保護します。 保護の本質は、関数への制御の転送後に別の「シャドウ」スタックにリターンアドレスを保存し、関数を終了する前にこのアドレスを取得することです。

出典 https://gcc.gnu.org/pipermail


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:AB Internet Networks 2008 SL
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。