跳到主要内容

LLVM

LLVM 是一套由 C++ 写成的开源编译器基础设施项目,包含一系列模块化、可重用的编译器组件和工具链,可用来开发编译器前端和后端。

LLVM 起源于2000年伊利诺斯大学(UIUC)维克拉姆·艾夫(Vikram Adve)和克里斯·拉特纳(Chris Lattner)的一个研究项目。目的是提供一个现代的、基于 SSA 的、能够支持任意静态和动态编译的编程语言的编译策略。此后,LLVM 成长为 umbrella 项目下的一个子项目。被广泛用于各种各样的商业生产和开源代码项目以及学术研究中。

LLVM 的名字最早源自于底层虚拟机(Low Level Virtual Machine)的首字母缩写,但由于这个项目的范围并不局限于创建一个虚拟机,因此导致了广泛的疑惑。随着 LLVM 项目的发展,开发者决定放弃这个缩写的含义,使 LLVM 的名字单纯成为一个品牌,因此注意不要再称 LLVM 称为 low level virtual machine。

如今,LLVM 成为众多编译工具及低端工具技术的统称,也适用于 LLVM 下的所有项目,包括 LLVM IR、Clang、LLDB 等。