「LLVM 3.8」リリース
LLVM Projectは3月8日、オープンソースのコンパイラ基盤「LLVM 3.8」を公開した。Windowsの最小要件がWindows 7以上となり、C APIなどで多数の機能強化が加わった。
LLVMはモジュラー型で再利用可能なコンパイラとツールチェーンのセット。ソースとターゲットに依存しない最適化エンジン、主要なCPU向けのコード生成サポートなどの機能を持つLLVM Coreのほか、多数のサブプロジェクトも持つ。
LLVM 3.8は2015年9月に公開した「LLVM 3.7」に続く最新版。本バージョンよりWindowsの最小要件は「Windows 7」となった。これにより、Windows XPやVistaのサポートはなくなっている。
LLVM自体のビルドはCMakeを利用したものが推奨され、autoconfビルドシステムは非推奨となった。autoconfでのビルドはバージョン3.9では削除されるという。そのため、CMakeへの移行を呼びかけている。また、C APIのLLVMLinkModulesも非推奨となり、こちらも3.9で削除される。こちらについてはLLVMLinkModules2への移行を呼びかけている。このほか、LLVMParseBitcode、LLVMParseBitcodeInContext、LLVMGetBitcodeModuleInContext、LLVMGetBitcodeModuleも同様に非推奨となり3.9で削除される。すでに非推奨となっていたLLVMCreateExecutionEngine、LLVMCreateInterpreter、LLVMCreateJITCompiler、LLVMAddModuleProvider、LLVMRemoveModuleProviderは削除された。
C APIではこのほかヘッダを再構成し、Type固有の宣言はType.hに、エラー処理ルーチンはErrorHandling.hに移動した。これにより、ビルド時間の短縮化が図れるという。
ハイレベルのJIT APIであるORCで、Cバインディングの基本的なセットを導入した。ターゲットに依存しないgcc互換エミュレートのThread Local Storageモードが加わった。また、MSVC互換の例外処理を完全に書き換えた。アーカイバllvm-arでは、シンアーカイブ対応が加わった。
ARM関連では、AArch64で対応するサニタイザの種類が増え、メモリ、スレッドなどで利用できるようになった。新しいELFバックエンドで、LLDの初期サポートが加わった。LLDBのサポートも拡大されている。Exynos M1チップも新たにサポートする。
このほか、x86ターゲットでさまざまな強化が加わっており、MIPSターゲット、PowerPCターゲットなどもそれぞれ強化されている。
LLVM Projectはあわせて、LLVMネイティブのC/C++/Object-Cコンパイラである「Clang 3.8」も公開している。
LLVM
http://www.llvm.org/