LLVM于今日刚刚发布了3.4版本. 3.4版本是LLVM工具链的一次较大升级。Clang已经支持了目前所有最新的C++标准. LLVM的性能也提升了不少。该版本有如下的新亮点:
- Clang支持了目前最新的所有C++标准。 C++11和C++1y(C++14)。 
- Clang中的静态语法分析工具(Static Analyzer)对C++的支持有了较大提升。 
- Clang中新增加了一个clang-format工具,用于将代码按照比如Google Code Style,LLVM Code style的格式重新组织。 
- clang O4不再隐式的开启链接时优化,LTO需要使用选项-flto打开。 
- 下一个版本LLVM将在其实现中使用C++11的新特性。因此3.4版本将是最后一个使用支持C++98工具链就能编译的LLVM版本。 
- AMD R600 GPU 的LLVM后端已经从“experimental”,提升为默认编译的后端。有了该支持,就能在R600系列GPU上实现针对Radeon OpenCL的开源支持。 
- 针对循环的自动向量化,将在-Os,-O2时默认打开。 LLVM3.3中仅在-O3时才会默认打开 
- 新的SLP(Superword-Level Parallelism)向量化默认也会打开 
- 对LLVM OCaml支持做了大量的改进 
- 旧JIT不再支持异常处理。在该版本中只有MCJIT支持异常处理 
- llvm-arm使用了新的对象库(Object library)。目前能生成gnu格式的符号表 
- 增加对MIPS SIMD指令集的支持 
- PowerPC后端对快速代码生成做了改进,包括修bug和对CPU新特性的支持 
- 增加了对SPARC V9后端, SPARC JIT的支持,并对SPARC已有的支持做了改进。 
从2002年至今,LLVM从无到有,成长了11年。目前LLVM 主干的代码量也突破了2百万大关(2347930行),有370个开发者做了将近10万次提交(98829)。转如下几幅图给各位,这些图展示了LLVM这十年来的一些变化。
LLVM的代码行数10年变化曲线
LLVM贡献代码量最多的10位的代码量动态曲线
LLVM文件数随时间变化曲线
说道编译器的历史回顾,还有一个有趣的视频:


