LLVM 3.0リリース

12月1日、LLVM 3.0(低レベル仮想マシン)がリリースされました。これは、プラットフォームに依存しない最適化された低レベルバイトコードを生成する「コンパイラのインフラストラクチャ」です(Habréのレビューを参照)。 LLVMは、Mac OS XおよびiOSの公式開発ツールでも使用されます。



LLVM 2.9のリリースから6か月が経過しました。新しい「貪欲な」レジスタアロケータを含む、かなりの数の革新があります 。 興味深い最適化手法を使用し、コードのパフォーマンスを大幅に改善できます。



LLVMのその他の改善には、 アトミック操作とC ++メモリモデルの完全なサポート、大幅に改善されたMIPSバックエンド、およびgprofとgcovのプロファイリングのサポートが含まれます。



開発者は、これはインクリメンタルリリースですが、メジャーバージョン番号は「古い荷物を取り除くことを許可した」と言います。 特に、LLVM 3.0はフロントエンドllvm-gccをサポートしなくなりました。 代わりに、ClangまたはDragoneggをお勧めします。 最初の方法はCで、Dragoneggはプラグインを介してGCCを使用する場合に適しています。 GCCフロントエンドおよびLLVMバックエンドからのバンドルは、C、C ++、FortranおよびAda、部分的にJava、Objective-C、Objective-C ++およびGoogle Goをサポートします。



LLVM 3.0は、LLVM 2.8以前の.bcまたは.llファイルも受け入れません。 彼らは、新しいファイル形式を永遠に安定させることを約束しているため、バージョン3.0以降は変更されません。



LLVM 3.0にはClang 3.0コンパイラがバンドルされており、最近、多くのパフォーマンスが追加され、C'1xおよびC ++ '11(C ++ '0x)のサポートの拡張など、いくつかの重要な機能も追加されました( リリースノートを参照) Objective-Cからの自動参照カウントのサポート。



その結果、GCCを使用する場合、LLVM 2.9よりもClang自体が高速で実行され、より高速なコードをコンパイルしてエラーを処理します。



All Articles