本文介绍了 LLVM 编译器基础架构和指令集,这是一种简单的方法,能够在链接时、运行时以及现场进行复杂的代码转换。这是一种务实的编译方法,尽可能少地干扰程序员和工具,同时仍然保留来自源代码级编译器的广泛高级信息,以备应用程序生命周期的后续阶段使用。我们描述了 LLVM 指令集、LLVM 系统的设计以及其一些关键组件。
"LLVM 指令集和编译策略",Chris Lattner & Vikram Adve
技术报告 #UIUCDCS-R-2002-2292,伊利诺伊大学计算机科学系,2002 年 8 月。
自从本文发表以来,LLVM 发生了一项重大变化:文档中描述的 GCC C 前端已从头开始完全重写。新的 C 前端基于主线 GCC CVS 树(即将成为 GCC 3.4),并从 GCC AST 表示而不是无类型的 GCC RTL 表示扩展类型安全的 LLVM 代码。
此更改极大地提高了生成的代码质量和整个系统的稳定性。
@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} }