LLVM编译器发布3.8版本了,主要是对以前版本各项性能的优化,以及对之前版本的升级。最新的发布日志可以查看这里。 这次发布的主要变化有: - 这次版本要求的Windows最低版本是Windows 7.较早的版本例如Windows Vista和XP已经不再提供支持。
- 不再支持自动配置编译系统,这个特性将在3.9完全移除,请使用CMake。更多信息可以查看这里。
- 分别在开发者分支和发布分支添加了C API的稳定性,以及如何扩展C API。更多信息可以查看开发者文档。
- 废弃C API的函数
LLVMLinkModules 。在3.9版本中将正式移除,请使用LLVMLinkModules2 。新版本的函数:不接受未使用的函数;销毁资源,而不是仅仅破坏资源;不再记录信息,而使用诊断程序处理错误,而不是记录信息。 - 废弃
LLVMParseBitcode , LLVMParseBitcodeInContext , LLVMGetBitcodeModuleInContext 和LLVMGetBitcodeModule 等函数。将在3.9版本中正式移除。请改用版本2.新版本的函数使用诊断程序处理错误,而不是记录信息。 LLVMGetBitcodeModuleProviderInContext 和LLVMGetBitcodeModuleProvider 被移除。- 这次的版本中,重新整理了头文件,提高编译的效率。
- llvm不再产生
.data.rel.ro.local 或.data.rel 部分。 - IR链接器分成两部分,
IRMover 负责移动模块的东西,Linker负责链接。 RegisterScheduler::setDefault 被移除。- Kaleidoscope tutorials更新了ORC JIT APIs的内容。
- ORC有基本的C数据类型了。
- 默认支持函数的优化。
- 添加了目标主导的模拟线程的gcc兼容的本地存储模块。当
-femultated-tls 标志使用的时候,所有对TLS变量的调用都会在运行时转化为对__emutls_get_address 的调用。
详细的更新日志请见这里。 原文:LLVM 3.8 Release Notes |