LLVM 2.6リリース

 10月23日、オープンソースのコンパイラインフラストラクチャ環境「Low Level Virtual Machine(LLVM)」の新版「LLVM 2.6」がリリースされた。C/C++/Objective-Cフロントエンド「Clang」が公式に追加されたほか、JVM/CLI仮想環境の改善や、コンパイラがコード生成に使用できるランタイムライブラリ「compiler-rt」といった新たなツールキットの追加などが行われている。

 LLVMはより強力な最適化を実行できるコンパイラを実装するためのコンパイラインフラストラクチャ環境。LLVMは特定言語向けのフロントエンドと仮想マシンから構成されており、特定のプログラミング言語で記述されたプログラムコードを一旦LLVM仮想マシン向けのコードに変換した後に、ターゲットとなるマシン向けのネイティブコードに変換する、という手順でコードを生成する。仮想マシン向けのコードを経由することで、ソースコードから直接ネイティブコードを生成する場合と比べてより強力な最適化が期待できるという。

 また、LLVMは仮想マシン向けのコードを生成するフロントエンド部と、ネイティブコードを生成する仮想マシン(バックエンド)部が分離しており、現在さまざまな言語に対応するフロントエンドが開発されている。たとえばLLVM 2.5以前ではGCCベースのC/C++フロントエンドが利用されていたが、LLVM 2.6では新たにC/C++/Objective-Cフロントエンドとして「Clang」が含まれている。ClangはGCCベースのフロントエンドよりコンパイルが高速で、生成されたバイナリもより高速に動作するそうだ。

 そのほかLLVM 2.6ではテストツールやデバッグ向け機能が強化されているほか、マルチスレッド処理の最適化などが行われている。

The LLVM Compiler Infrastructure
http://llvm.org/

LLVM 2.6 Release Notes
http://llvm.org/docs/ReleaseNotes.html