LLVM 13.0には、サポートの改善などが含まれています。

Llvm

開発のXNUMXか月後、 プロジェクト«LLVM13.0»の新しいバージョンの立ち上げが発表されました プログラムをRISC(マルチレベル最適化システムを備えた低レベル仮想マシン)と同様の仮想命令の中間ビットコードにコンパイルするGCC準拠(コンパイラー、オプティマイザー、およびコードジェネレーター)。

この新しいバージョンでは、さまざまな変更とノベルティが追加されており、そのうち 強調表示されたサポートの機能強化 また、とりわけC ++ 20およびC ++ 2bの新機能の実装も含まれます。

LLVM13.0の主な新機能

この新しいバージョンでは、CETテクノロジーを使用するための「-ehcontguard」オプションを追加しました (Windows Control-flow Enforcement Technology)は、Return-Oriented Programming(ROP)技術を使用して構築されたエクスプロイトの実行の例外処理段階で保護します。

その上、そしてdebuginfo-testプロジェクトの名前がcross-project-testsに変更されました また、デバッグ情報に限らず、複数のプロジェクトのコンポーネントをテストするように設計されており、ビルドシステムは、複数のディストリビューションのビルドをサポートします。たとえば、XNUMXつはユーティリティを使用し、もうXNUMXつは開発者ライブラリを使用します。

さらに Libc ++は、C ++ 20およびC ++ 2b標準の新機能を引き続き実装します。、「概念」ライブラリの完成を含む、プラス stdのサポートが追加されました:MinGWに基づくWindows用のファイルシステム、個別のヘッダーファイルも、 とまた、LIBCXX_ENABLE_INCOMPLETE_FEATURESビルドオプションが追加され、機能が不完全に実装されたヘッダーファイルが無効になりました。

つつ AArch64アーキテクチャのバックエンドはArmv9-ARME拡張機能をサポートします アセンブラの(Realm Management Extension)およびSME(Scalable Matrix Extension)、 ISA V68 / HVXサポートが追加されました ヘキサゴナルアーキテクチャバックエンドとx86バックエンドへ AMD Zen3プロセッサとの互換性の向上 また、AMDGPUバックエンドにGFX1013 RDNA2APUのサポートを追加しました。

ビッグエンディアンのAarch64プロセッサのサポートを実装するLLDリンカーの機能も拡張され、Mach-Oバックエンドは通常のプログラムをリンクできる状態になりました。 LLDを使用してGlibcをリンクするために必要な拡張機能が含まれています。

llvm-mca(Machine Code Analyzer)ユーティリティは、ARMCortex-A55などのインオーダースーパースカラーパイププロセッサのサポートを追加します。

AArch64プラットフォーム用のLLDBデバッガーは、ポインター認証を完全にサポートします。 MTE(MemTag、Memory Tagging Extension)およびSVEレジスタに加えて、タグを各メモリ割り当て操作にバインドし、メモリにアクセスするときに、タグに正しく関連付けられる必要があるポインタをチェックするように整理できるコマンドが追加されました。
プロジェクトによって生成されたバイナリアセンブリに、LLDBデバッガーとFortran-Flangインターフェイスが追加されました。

として Clang 13.0は、改善点を強調しています。

  • 保証されたキュー呼び出し(サブルーチンがそれ自体を呼び出す場合に末尾再帰を形成する関数の最後のサブルーチン呼び出し)のサポートが実装されました。
  • 「-Wunused-but-set-parameter」フラグと「-Wunused-but-set-variable」フラグを追加して、パラメーターまたは変数が設定されているが使用されていない場合に警告を表示するようにしました。
  • 減算操作でnullポインターを使用したためにコードが未定義の動作を引き起こす可能性がある場合に警告を表示するために、「-Wnull-pointer-subtraction」フラグを追加しました。
  • 「-fstack-use」フラグを追加して、コードファイルごとに、処理されたファイルで定義された各関数のスタックフレームのサイズに関する情報を含む追加の「.su」ファイルを生成します。
  • 新しいタイプの出力が静的パーサー「sarif-html」に追加されました。これにより、HTML形式とSarif形式で同時にレポートが生成されます。
  • allocClassWithNameの新しいチェックを追加しました。 「-analyzer-display-progress」オプションを指定すると、各関数の解析時間が表示されます。 スマートポインターパーサー(alpha.cplusplus.SmartPtr)の準備がほぼ整いました。
  • OpenMP 5.1仕様で定義されているループ変換ディレクティブ( "#pragma ompunrol"および "#pragma omp tile")のサポートが実装されています。
  • 新しいチェックの大部分がlinterclang-tidyに追加されました。

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


コメントを残す

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

*

*

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