LLVM
LLVM(Low Level Virtual Machine,不过官方为了避免混淆已经弃用该名称,将LLVM作为项目的全名),这是一个用 C++ 编写的开源项目,最开始作为伊利诺伊州大学的一个研究项目由 Swift 语言的创始人 Chris Lattner 进行开发。LLVM项目是模块化、可重用的编译器以及工具链技术的集合。
LLVM提供了与编译器相关的支持,可以作为多种语言编译器的后端来使用,能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。
LLVM从一个学术研究项目进化成C、C++和Objective C编译器的通用后端。成功的关键是性能和适应能力,两者都得益于LLVM独特的设计和实现。
传统的编译器架构为:
Source Code -> [ Frontend & Optimizer & Backend ] -> Machine Code
对比,LLVM的架构为:
Source Code @ x -> [ x Frontend ] -> [ LLVM Optimizer @ IR ] -> [ LLVM m Backend ] -> Machine Code @ m
其中,x为C/C++, Objcect C等多种语言;m为x86