为实现增量LTO发布的GCC修补程序

2023年 11月 18日 90.1k 0

SUSE的MichalJires在周五发布了一组新的补丁,用于实现对GNU编译器集合的增量LTO支持。增量LTO的目标是减少编译时间,同时使用链接时间优化进行快速编辑编译周期。

Jires总结
补丁系列
作为:

这些补丁实现了增量LTO,特别是通过缓存ltrans阶段的结果。其次,这些补丁包含一些更改,以减少ltrans分区的差异,从而可以缓存它们。

其目的是在使用LTO时减少快速编辑编译周期的编译时间。即使对GCC的其余部分进行了这些最小的更改,它的工作效果也出奇地好。目前通过自编译cc1进行测试,将单个提交用作增量更改,平均只有约1/3的分区需要用“-O2-g0”重新编译,约1/2需要用“-O2-g”重新编译。这直接减少了LTO在ltrans阶段花费的时间。

不幸的是,更大的收益有点脆弱。你可能还记得,在我的Cauldron演讲中,我声称可以减少到大约1/6和大约1/3的重新编译。分支机构从三月份开始实现了这一目标。从那时起,至少有两次提交引入了新的分区分歧,尽管它们在未来似乎是可以修复的。

考虑到时间安排,这种增量LTO支持似乎不太可能在即将发布的GCC 14中合并。在任何情况下,这种增量LTO支持对于那些经常编译代码同时希望使用LTO并将构建时间保持在最低限度的人来说都应该是有趣的。他的GNU工具大锅2023幻灯片还没有上传给那些对背景材料感兴趣的人。

This is certainly a great feature and akin to the work going on in the LLVM camp with ThinLTO for having link-time optimizations that are scalable and incremental. Hopefully GCC's Incremental LTO support will be worked into good enough shape for upstreaming in the near future.

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论