The LLVM Compiler Infrastructure
Low Level Virtual Machine (LLVM) とは:
1. プログラムのライフタイム全体にわたる、効果的な最適化が可能なように
設計されたコンパイル戦略である。
LLVMは、コンパイル時、リンク時(特に手続き間における)、実行時、および
オフライン時(すなわち、ソフトウェアがインストールされた後)における効果的な
最適化をサポートしており、なおかつ、開発者にとっては透過的で、既存のビル
ドスクリプトに関する互換性が維持されている。
2. 仮想命令セット - LLVMは低レベルなオブジェクトコード表現である。これは、
単純なRISC風命令ではあるが、言語から独立した、オペランドに関する型情報
およびデータフロー(SSA)情報を十分に提供する。
これらによって、実行ファイルに付加するのに十分軽量なままで、オブジェ
クトコードにおける洗練された変換が可能になる。
これらは、リンク時、実行時、およびオフライン時における変換を可能にす
る鍵である。
3. コンパイラインフラストラクチャ - また、LLVMは言語とコンパイル戦略を実
装するソースコードの集まりでもある。
LLVM インフラストラクチャの第一の構成要素は、GCCベースのCおよび
C++フロントエンド、グローバルで手続き間における解析と変換まで行う(???)リンク
時の最適化フレームワーク、X86、PowerPC、IA-64、Alpha、およびSPARC V9
アーキテクチャのための静的なバックエンド、ポータブルなCコードを出力する
バックエンド、および、X86、PowerPC、およびSPARC V9プロセッサのための
ジャストインタイムコンパイラからなる。
4. LLVMはあなたが高度なバーチャルマシンに期待するような機能は持ち合
わせていない。
LLVMはガーベージコレクションや実行時コード生成を必要としない。(すな
わち、LLVMはすばらしい静的コンパイラを作る(?)のである)
任意のLLVMコンポーネントは、高度なバーチャルマシンやそのようなサー
ビスを必要とする皮下のシステムを構築するのに利用可能なことに注意せよ。
Apple announced that they are using the LLVM
optimizer and JIT within their Mac OS 10.5 'Leopard' OpenGL stack.
7 :
デフォルトの名無しさん:
あなたの作ったソフトウェアを、LLVMにコンパイルすれば、早くなりますよ。