「LLVM 15」が公開

 オープンソースのコンパイラ基盤LLVM開発チームは9月6日、最新のメジャーリリースとなる「LLVM 15.0」の公開を発表した。

 LLVMはモジュラー型で再利用可能なコンパイラとツールチェーン技術セット。LLVM Coreライブラリに加えて、LLVMネイティブのC/C++/Objective-CコンパイラであるClang、デバッガーのLLDBなどのプロジェクトも擁する。LLVM 15は3月に公開されたバージョン14に続く最新版。デフォルトでC++17で構築されており、C++17をサポートする他、GCCは7.1、Clangは5.0、Apple Clangは9.3、Visual Studio 2019は16.7が最少要件となる。

 Opaqueポインタを使用するようになった。i8*、i32*、void()**などの異なるポインタを単一のptyとして表現できるようになった。Armv9-A、Armv9.1-A、Armv9.2-Aの各アーキテクチャをサポートし、Arm Cortex-M85 CPUのサポートも加わった。DirectXバックエンドが実験的にターゲットとして加わった。CMake設定で-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=DirectXと指定することで有効にできる。

 Clangでは、x86で-fzero-call-used-regsのサポートが加わった。Return-Oriented Programming(ROP)攻撃と情報漏洩を制限するという。Cにおける構造体レイアウトのランダム化をサポートした。コンパイル時のハードニング手法で、 攻撃者による構造体からのデータ取得を難しくするとしている。このほか、LLD、libc++、Pollyなどでも新機能や機能強化が加わっている。

LLVM Project
https://llvm.org/