LLVM Clang 11 预编译头新选项将带来大幅构建性能提升

来源: OSCHINA
编辑: oschina
2020-08-10 08:32:42

科技外媒 phoronix 跟踪了 LLVM/Clang 11 源码更新中的一个构建新特性,如果将 clang-cl 驱动用于 MSVC 或通过其它方式使用预编译头(Pre-Compiled Headers,PCH)特性,则可以使用新选项来显著加快构建时间

这一特性最早提交于去年 10 月,今年 4 月又被调整后 commit,并进入 LLVM 11 RC。主要原理是添加选项以实例化 PCH 中已经存在的模板。添加 -fpch-instantiate-templates,在生成预编译头时已经实例化模板,而不是在每次使用预编译头时都实例化。

默认情况下仅为 clang-cl 启用此功能。MSVC 通过使用空的 .cpp 文件进行编译来创建 PCH ,这意味着在构建 PCH 时会实例化模板,因此 .h 需要自包含,否则可能导致问题:test/PCH/pch-instantiate-templates-forward-decl.cpp 无法编译。

提出这一改进的开发者测试了多次,表示这可以节省 20-30% 的构建时间。

具体可以查看:https://reviews.llvm.org/rGa45f713c673001abb4fe0612b909c698073eb356。另外,LLVM 11.0/Clang 11.0 预计下个月发布。

展开阅读全文
精彩评论
您好,请问LLVM是干嘛的?是用来写编译器的吗?
2020-08-10 09:13
1
举报
3 收藏
分享
5 评论
3 收藏
分享
返回顶部
顶部
返回顶部
顶部