LLVM编译器套件项目释出了 8.0.0 版,LLVM 项目现在是每半年发布一个大版本,每个大版本将增加一个版本号,小版本号变化主要是同一分支的更新。
LLVM介绍
LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。
LLVM计划启动于2000年,最初由美国UIUC大学的Chris Lattner博士主持开展。2006年Chris Lattner加盟Apple Inc.并致力于LLVM在Apple开发体系中的应用。Apple也是LLVM计划的主要资助者。
目前LLVM已经被苹果IOS开发工具、Xilinx Vivado、FB、Google等各大公司采用。
LLVM软件特色
对关注编译技术的开发人员,LLVM提供了很多优点:
现代化的设计
LLVM的设计是高度模块化的,使得其代码更为清晰和便于排查问题所在。
语言无关的中间代码
一方面,这使得透过LLVM能够将不同的语言相互连结起来;也使得LLVM能够紧密地与IDE交互和集成。
另一方面,发布中间代码而非目标代码能够在目标系统上更好地发挥其潜能而又不伤害可调试性(i.e. 在目标系统上针对本机的硬件环境产生目标代码,但又能够直接通过中间代码来进行行级调试)
作为工具和函数库
使用LLVM提供的工具可以比较容易地实现新的编程语言的优化编译器或VM,或为现有的编程语言引入一些更好的优化/调试特性。 [5]
主要变化包括:
预测加载加固,ORC JIT API 并行编译,WebAssembly target 不再是实验性支出,初始化自动变量选项,改进 clang-cl 的 预编译头文件支持,/Zc:dllexportInlines- flag,RISC-V 支持等等。
∨ 展开