LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. |
LLVMプロジェクトは22日(米国時間)、LLVMの最新版となる「LLVM 3.1」を公開した。LLVMは、OSSとして開発されているコンパイラインフラストラクチャ。C/C++/Objective-Cコンパイラである「Clang」をはじめさまざまなコンパイラやツールチェーン、ライブラリ、サブプロジェクトなどを抱えるプラットフォームで、AppleやAMD、NVIDIA、Adobeなど大手ソフトウェアベンダで活用されている。
LLVM 3.1は、3.0から約半年の開発期間を経て公開された最新版。C/C++向けの高速なメモリエラー検出「AddressSanitizer」の導入や、インストラクションシーケンスのモデルをサポートする「MachineInstr Bundles」、ARMアセンブラの統合、コードジェネレータのブロック配置やコードレイアウトアルゴリズムの追加などのほか、多くのバグフィックス、パフォーマンスの調整などが行われている。
Clang 3.1に関しては、C++ 11よりlambdas/initializer lists/constexpr/user-defined literals/atomicsなどの機能を実装し、新しいツールライブラリの導入、Objective Cに対してリテラルのサポート拡張などが実施されている。
LLVM 3.1ではこの他にも、LLVM IR(Intermediate Representation)およびコアや最適化機能、MC(Machine Code)レベルコード、各アーキテクチャ向けの各種改良が加えられている。また、サブプロジェクトの「DragonEgg」「LLDB (Low Level Debugger)」「libc++」「VMKit」「Polly」などにも手が加えられており、「compiler-rt (Compiler Runtime Library)」という新たなサブプロジェクトも加わっている。