「LLVM 12.0.0」が公開

 LLVM開発チームは4月15日、最新のメジャーリリースとなる「LLVM 12.0.0」公開を発表した。

 LLVMはモジュラー型で再利用可能なコンパイラとツールチェーン。イリノイ大学のリサーチプロジェクトとしてスタートし、ソースとターゲット非依存のオプティマイザーLLVM Core、LLVMネイティブの C/C++/Objective-CコンパイラClang、LLVMとClang上のネイティブデバッガLLDB、C++ Standard Libraryの高性能な実装libc++とlibc++ ABIなどのサブプロジェクトも傘下に収める。LLVM 12は2020年10月に公開されたバージョン11に続く最新版。

 内部のllvm-build Pythonスクリプトと関連するLLVMBuild.txtファイルが削除され、代わってCMakeアプローチを採るようになった。各コンポーネントが作成されたターゲットで外部プロパティを保存し、全コンポーネントがライブラリ依存性を解決してllvm-configのヘッダーを生成するように定義されると、これらのプロパティが処理される。LLVMツールでは、llvm-readobj、llvm-readelf、llvm-mcaなどで変更が加わっている。ターゲット別でも強化が加わった。x86では、-mtuneをサポートするtune-cpu関数属性が加わった。target-cpu属性やTargetMachine CPUに依存することなく、マイクロアーキテクチャ的な最適化を適用できるという。

 10系でclangフロントエンドから削除されていたmpxが、バックエンドから削除された。Intel Alder Lake(-march=alderlake), Intel Sapphire Rapids(-march=sapphirerapids)のサポートが加わった。HRESET、UINTR、AVXVNNIの各命令セットをサポートした。

 Clangでは診断機能を強化した。コンパイラフラグも変更し、WindowsのサポートもArm64上のWindowsなどで強化が加わっている。

The LLVM Project
https://llvm.org