最適化機能の強化が行われた「LLVM 3.3」リリース、ClangではC++11のフルサポートを実現

 コンパイラ環境LLVM(Low Level Virtual Machine)を開発するLLVM Projectは6月18日、最新版となる「LLVM 3.3」およびC/C++フロントエンド「Clang」をリリースした。C++11のフルサポートや性能の改善などが特徴となる。

 LLVMは強力な最適化機能を提供するコンパイラフレームワーク。ソースコードやターゲットに依存しないコアライブラリ、C/C++/Objective-CコンパイラのClang、デバッガ「LLDB(Low Level Debugger)」、GCCをフロントエンドとして利用することでAdaやFortranといった言語をサポートする「DragonEgg」などのサブプロジェクトがある。ライセンスはUniversity of Illinois/NCSA Open Source Licens。

 LLVM 3.3は2012年12月に公開されたバージョン3.2に次ぐ最新版となる。複数の処理を一命令で実行する最適化機能「Auto-Vectorizer」がデフォルトで有効(-03レベル)となり、デフォルトでより強力な最適化が行われるようになる。デフォルトでは無効に設定されているが「SLP Vectorizer」も加わった。このほかにも性能を改善する機能強化が加わっており、ほとんどのベンチマークでLLVM 3.2を上回る性能を記録したという。

 また、新たに64ビット版ARMである「AArch64」やAMDのGPUであるRadeon HD 2000系から7000系までをサポートする「AMD R600」、IBMのSystemZ/S390といったアーキテクチャのサポートが加わっている。PowerPCやMIPSアーキテクチャのサポートも改善されている。一方、CellSPUへのポートについては本バージョンからは削除されることとなった。

 Clangは、std::regexなどC++11のすべての機能をサポートした。開発チームによると、現時点でC++11にフル対応したコンパイラはClangのみという。ソースコード解析ツールのClang Static Analyzerも強化し、新しいチェッカーなどが加わった。コードでC++11の機能を利用するためのアップグレードツールC++11 Migratorも公開されている。

 デバッガのLLDBでは、Linux環境におけるwatchpointsサポートやlldbコマンドでのvim統合機能、ベクタ演算用レジスタなどを含むレジスタサポートの改善などが行われている。DragonEggではGCC 4.8のサポートが加わるなど、多数の細かな機能強化が加わっている。

 LLVMはプロジェクトのWebサイトよりダウンロードできる。

LLVM Project
http://llvm.org/