GCC 11.1はすでにリリースされており、これらは最も重要なニュースと変更点です。

XNUMX年の開発の後、 GCCコンパイラスイート11.1の新しいバージョンがリリースされました、新しいGCC11.xブランチの最初の重要なリリース。 新しいバージョン番号付けスキームでは、開発中にバージョン11.0が使用され、GCC 11.1のリリース直前に、GCC12.0のブランチがすでに分岐してGCC12.1の次のメジャーバージョンを形成していました。

GCC 11.1は、デフォルトのデバッグファイル形式DWARF5への移行を際立たせています。、C ++ 17標準( "-std = gnu ++ 17")のデフォルトの組み込み、C ++ 20標準との互換性の大幅な改善、C ++ 23の実験的サポート、の将来の標準に関連する改善C言語(C2x)、新しいパフォーマンスの最適化。

GCC11.1主な新機能

C ++言語のデフォルトモードは、C ++ 17標準を使用するように変更されています、以前に提案されたC ++ 14の代わりに。 他のテンプレートをパラメーターとして使用するテンプレートを処理するときに、新しいC ++ 17の動作を選択的に無効にすることができます(-fno-new-ttp-matching)。

ハードウェアアクセラレーションのサポートが追加されました AddressSanitizerツールの機能を使用すると、メモリの解放された領域にアクセスしたり、割り当てられたバッファの制限を超えたり、メモリを操作するときに他の種類のエラーが発生したりする事実を判断できます。 現在、ハードウェアアクセラレーションは、AArch64アーキテクチャでのみ使用可能であり、Linuxカーネルをコンパイルする際の使用に重点を置いています。

提示される別の目新しさは 新しいIPA-modrefパスが追加されたため、手順間の最適化と改善 (-fipa-modref)関数呼び出しの副作用を追跡し、分析の精度を向上させます。 それに加えて IPA-ICFパスの実装の改善 (-fipa-icf)。これにより、コンパイルメモリの消費が削減され、同一のコードブロックがマージされる統合関数の数が増加します。

El プロファイル駆動型最適化エンジン (PGO)、 改善された「-fprofile-values」モード 間接呼び出しのより多くのパラメータを追跡することによって。

さらに OpenMP5.0標準の継続的な実装が強調されています (オープンマルチプロセッシング)、 割り当てディレクティブの初期サポートと不均一なループを使用する機能が追加されました OpenMPビルドで。 OMP_TARGET_OFFLOAD環境変数がサポートされるようになりました。

GPUおよびNVIDIAPTXなどの特殊なプロセッサに操作をオフロードするためのツールを定義するC、C ++、およびFortran言語用に提供されたOpenACC2.6並列プログラミング仕様の実装が改善されました。

Cファミリーの言語では、新しい属性「no_stack_protector」が実装されています。 スタック保護を有効にしない機能をマークするように設計されています(「-fstack-protector」)。 「malloc」属性が拡張され、メモリを割り当てて解放するための呼び出しのペアを識別できるようになりました。、静的パーサーで使用され、一般的なメモリエラー(メモリリーク、解放後の使用、解放関数のXNUMX回の呼び出しなど)とコンパイラの警告「-Wmismatched-dealloc」、「-Wmismatched-new-delete」および「 -Wfree-nonheap-object "一貫性のない割り当て解除および割り当て解除操作を報告します。

デバッグ情報を生成する場合、デフォルトでDWARF 5形式が使用されます。これにより、以前のバージョンと比較して、25%コンパクトなデバッグデータを生成できます。 DWARF 5を完全にサポートするには、少なくともバージョン2.35.2のbinutilsが必要です。

強化されたThreadSanitizerモード機能(-fsanitize = thread)、はいからeは、代替のランタイムと環境のサポートを追加します。 また、Linuxカーネル内の競合状態を動的に検出するためのカーネル同時実行サニタイザー(KCSAN)デバッグツールのサポート。 新しいオプション「–paramtsan-distinguish-volatile」および「–paramtsan-instrument-func-entry-exit」が追加されました。

ベクター化機能は、関数のすべてのコンテンツのアカウンティングと、交差に関連する機能の追加処理、および制御フローチャート(CFG)内の前のブロックへの参照を提供します。

オプティマイザーには、一連の条件付き操作を変更式に変換する機能があり、同じ変数が比較されます。 将来的には、変更式はビットテスト命令を使用してエンコードできるようになります(この変換を制御するために、「-fbit-tests」オプションが追加されました)。

C ++の場合、C ++ 20標準で提案された変更と革新の一部が実装されました。これには、仮想関数「consteval virtual」、オブジェクトのライフサイクルを終了するための疑似駆逐艦、列挙型クラスの使用、および計算が含まれます。式「new」の配列のサイズ。

あなたがそれについてもっと知りたいなら、詳細はで確認できます 次のリンク。 


記事の内容は、次の原則に準拠しています。 編集倫理。 エラーを報告するには、 ここで.

コメントを最初に

コメントを残す

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

*

*

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