一、引言
LLVM这个名字最初的意思是底层虚拟机(Low Level Virtual Machine)的缩写,它是由美国伊利诺伊大学开发的一个开源项目。现在LLVM的意义已经远远超越它最初的意思,所以现在LLVM就是整个项目的名称。
具体来说,LLVM是以C++编写而成的编译器(compiler)框架系统,或者说是一个模块化和可重复使用的编译器和工具技术的集合,其核心库提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用。利用LLVM,能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。
如果上面的解释仍然令你感觉不得要领,那么简而言之——LLVM就是一套类似于GCC(及其相关工具)的编译工具。很多人会好奇二者的区别,或者孰优孰劣。相比而言,GCC历史悠久、树大根深,拥有庞大的用户群体。而LLVM是后起之秀,方兴未艾。既然是后来者,自然也就具有一定的后发优势,例如LLVM的编译速度很快(据说通常是GCC的三倍左右)