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

LLVMプロジェクトは1月6日(米国時間)、コンパイラインフラストラクチャLLVMの最新版となる「LLVM 3.4」を公開した。LLVM、Clang、Clang Tools Extra、LLVM Test Suite、LibC++、Compiler RT、Dragonegg、LLDB、LLD、Pollyの成果物をそれぞれダウンロードできる。Clangに関してはバイナリが提供されており、Windows版、Mac OS X版、FreeBSD 9.2 amd64場版/i386版、Linux ARMv7a版/ARMv7版、OpenSUSE 13.1 i386版/x86-64版、Fedora 19/20 i386版/x64-64版、Ubuntu 13.10/12.04版が提供されている。X86、SPARC、ARM32、Aarch64、SystemZ、R600などのアーキテクチャに対応。

「LLVM 3.4」の主な注目点は次のとおり。

  • 現在策定が進められている次期C++標準(通称C++1y)のすべての仕様に対応
  • C++に対するスタティックアナライザの品質向上、誤検出の削減、バグ検出能力の向上
  • 組み込みスタイルに従って自動フォーマットを可能にする「clang-format」機能の導入(統合開発環境やテキストエディタ向け機能)
  • コードジェネレータの性能向上
  • ループの自動ベクタライザ機能の有効化(-Os、-O2、-O3)
  • ストレートライン自動ベクタライザ機能の有効化
  • -O4におけるリンク時最適化機能(LTO)の無効化(以前の-O4と同じにするには-O3 -fltoと指定する。-fltoでLTOが有効になり、-fltoはどの最適化レベルにおいても適用可能)

「LLVM 3.4」はC++'98に対応したコンパイラでビルドできる最終バージョンになる見通し。これ以降のバージョンはC++'11などより新しいC++標準に対応したコンパイラでビルドする必要があるとされている。

LLVMはオープンソースで開発されているコンパイラインフラストラクチャ。デフォルトでC、C++、Objective-Cに対応しているほか、それ以外のプログラミング言語にも幅広く対応している。コンパイル時間が短いこと、生成されるコードの性能が優れていること、構造が明確でほかのプログラミング言語からも利用しやすいことなどから採用シーンを広げている。