LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations.

LLVMプロジェクトは12月1日(米国時間)、LLVMの最新版となる「LLVM 3.0」を公開した。LLVMはOSSとして開発されているコンパイラインフラストラクチャ。当初研究目的でスタートしたプロジェクトだが、以後急速に成長。現在ではC/C++/Objective-Cコンパイラをはじめさまざまなコンパイラやツールチェーン、ライブラリ、サブプロジェクトなどを抱える新進気鋭のプラットフォームとなっている。大手ソフトウェアベンダも活用するなど注目度の高い技術となっている。

LLVM 3.0は2.9から半年の開発期間を経て公開された最新版。主な特徴としては次のようなものがある。

  • 生成されるコードを大幅に高速化する新しいレジストリアロケータの実装
  • C++メモリモデルのフルサポート
  • アトミックオペレーションのフルサポート
  • MIPSバックエンドの大幅な向上
  • grof/gcovスタイルプロファイリングのサポート

Clang 3.0に関しては次の機能追加や改善が実施されている。

  • C'1x/C++'11からより多くの機能を実装
  • Objective-Cオートマティックリファレンスカウントの実装
  • Clang 2.9と比較してより高速なコードの生成
  • Clang 2.9と比較してよりコンパイル時間短縮
  • Clang 2.9と比較してより良いエラーメッセージ/ワーニングメッセージの提供

注意点としては、LLVM 3.0からはllvm-gccフロントエンドのサポートが終了しているほか、LLVM 2.8以前の.bcファイルおよび.llファイルの読み込みサポートが廃止されている。OSSのコンパイラとしてGCCが代表的な位置づけにあるが、LLVMの方がコンパイラインフラストラクチャとして採用しやすい状況にあることや、ライセンス的にLLVMの方が採用に適しているといった理由から、LLVMへシフトするOSSプロジェクトも増えている。ソフトウェアベンダにも同様の傾向が見られる。