LLVM编译器架构
LLVM项目是一套工具的集合,它包括模块化、可复用的编译器及一些列工具链技术。
LLVM最开始是Low Level Virtual Machine的简称,但现在它并不是传统意义上的虚拟机。所以LLVM这个名字并非Low Level Virtual Machine的缩写,而是一个单词。
LLVM项目开始于伊利诺伊大学的一个研究项目,这个研究项目的目标是创造一个现代化、基于SSA编译策略同时支持静态编译和动态编译的编译器。此后LLVM项目成为一个包含多个子项目的大项目。
LLVM主要的子项目包括:
LLVM Core
兼容多种CPU的机器码生成库。
Clang
基于LLVM的一个C/C++/Objective C编译器,它的编译速度是GCC的三倍。
LLDB
基于LLVM的调试器,类似GDB