オープンソースのコンパイラスタック「LLVM 4.0」リリース

 LLVM Projectは3月13日、コンパイラスタックの「LLVM 4.0」を公開した。サブプロジェクトとして進められているCコンパイラフロントエンド「Clang」なども同時に最新版がリリースされている。

 LLVMはコンパイラやそれに関連するツールチェーン技術を集めたもの。SSAベースのモダンなコンパイラを開発するというイリノイ大学の研究プロジェクトからスタートした。ライセンスはBSDライクなUniversity of Illinois/NCSA Open Source License。

 LLVM 4.0は、2011年に公開されたLLVM 3.0に続くメジャーリリース。LLVM開発チームは半年に一度のリリースを行なっている。バージョン4.0は2月に公開を予定していたが、数週間遅れた。

 ThinkLTO(「-flto=thin」)を改善し、プロファイルデータ(PGO)を統合した。より正確な関数のインポートなどが可能になるという。デバッグ情報付きのコンパイルする際、ビルド時間とバイナリのサイズも改善されるという。

 LLVMコルーティンを実験的にサポートしたほか、_regcall呼出規約のサポートも加わった。既存の __vectorcallサポートを拡大してHVAの修正処理も利用できるようになった。

 開発チームは過去数回のリリースでIntrusive List APIの書き直しを進めており、本バージョンではsimple_ilist<T>、ilist<T>など多数の変更が加わった。

 AVRバックエンドをマージした。実験的な扱いだが、かなり使えるレベルとしている。また、ARM、MIPS、X86の各ターゲットで変更が加わった。

 LLVMネイティブのC/C++/Object-CコンパイラであるClangでは、「-Og」最適化レベルのサポート、JSONコンパイルデータベースアウトプットのための「-MJ」フラグなどが加わっている。

LLVM Project
http://llvm.org/