Appleの64ビット版ARMコンパイラコードが統合された「LLVM 3.5」リリース

 LLVM Projectは9月4日、コンパイラ環境の最新版「LLVM 3.5」をリリースした。最適化エンジンとバックエンドの性能を強化し、コンパイル時間を改善するという。プロジェクトのWebサイトより入手できる。

 LLVMはコンパイラの実装に必要なコンポーネントやモジュールを再利用可能な形で集めたもの。静的・動的の両方に対応するモダンなコンパイルを作成するという目標の下、イリノイ大学(UoI)の研究プロジェクトとしてスタートした。ソースコードやターゲットに依存しないコアライブラリと、C/C++/Objective-Cコンパイラ「Clang」など多数のサブプロジェクトから構成される。ライセンスはBSDライセンスに似た「University of Illinois/NCSA Open Source License(NCSA)」。

 LLVM 3.5は1月に公開されたLLVM 3.4に続くものとなる。AArch64バックエンドを強化し、Appleが公開したコードをAArch64/ARM64バックエンドにマージした。これにより、既存のAArch64コンパイラのバックエンドが持つ機能をすべて統合し、コードの生成を改善する。iOSのサポートも実現し、コンパイル時間も大きく改善するという。また、ARM統合のアセンブラで多数のGNU拡張とディレクティブをサポートした。Clangではデフォルトで有効となった。

 MIPSアーキテクチャも強化し、MIPS32とMIPS64のRelease 6をサポートした。また、統合アセンブラがMIPSとPowerPCアセンブリを認識するようになった。このほかPowerPC向けも強化されている。

 Clangでは、Linux/Sparc64およびFreeBSD/Sparc64マシン上でセルフホスティングが可能となった。先に仕様が策定したC++14標準をフルでサポートし、次期C++規格の「C++1z」の初期サポートも実現した。ベクトル化やインライン展開などの最適化が行われた際に知らせる「remark」機能も加わり、効率よくプログラムをチューニングできるという。

 AMDの新アーキテクチャ「Excavator」向けのコードのチューニングもサポートした。OpenMPサポートも改善したが、一般利用できるレベルではないという。

 Windowsでの利用も強化されており、GCC 4.7以降との互換性がある最新のMingW ABIを利用、ネイティブのWindowsプログラム構築を改善する。

LLVM Project
http://www.llvm.org/