このドキュメントでは、LLVMコンパイラインフラストラクチャと命令セットを紹介します。リンク時、実行時、および現場で洗練されたコード変換を可能にする、シンプルなアプローチです。この手法は、コンパイルに対して現実的アプローチであり、プログラマーとツールへの干渉を最小限に抑える一方で、アプリケーションの存続期間の後半段階で、ソースレベルのコンパイラからの包括的な高レベル情報を保持しています。LLVM命令セット、LLVMシステムの設計、およびその主要コンポーネントの一部について説明します。
"LLVM命令セットとコンパイル戦略"、クリス・ラトナー&ヴィクラム・アドヴェ
技術レポート#UIUCDCS-R-2002-2292、イリノイ大学コンピュータサイエンス学科、2002年8月。
このドキュメントの公開以来、1つの重要な変更がLLVMに加えられました。ドキュメントに記載されているGCC Cフロントエンドが、一から完全に書き直されました。新しいCフロントエンドは、メインラインのGCC CVSツリー(GCC 3.4になります)に基づいており、型安全なLLVMコードを、型付けされていないGCC RTL表現ではなく、GCC AST表現から拡張します。
この変更により、生成されたコードの品質とシステム全体の安定性が劇的に向上しました。
@TechReport{LattnerAdve:LLVM:ISCS,
Author = "{Chris Lattner and Vikram Adve}",
Title = "{The LLVM Instruction Set and Compilation Strategy}",
Institution = "{CS Dept., Univ. of Illinois at Urbana-Champaign}",
Number = {UIUCDCS-R-2002-2292},
Type = {Tech. Report},
Month = {Aug},
Year = {2002}
}