gcc - gcc有薄lto吗?
问题描述
Clang 允许使用瘦 lto 来加快编译时间,同时仍然保留使用 lto 和 option 的大部分优点-flto=thin
。gcc 有相当于 clang 的瘦 lto 吗?
解决方案
GCC 有一个相当于 Thin LTO:WHOle Program optimizeR (WHOPR)
WHOPR 是 GCC 的 LTO 功能的扩展。您可以使用-fwhopr
(添加到标准 LTO 选项)启用它。
- 标准 LTO 是完全单片的(就像 clang 中的标准 LTO)
- WHOPR 是一个两阶段的 LTO(如 clang Thin LTO)
这两个阶段是
- WPA:进行一些全局优化和分区 IR 的串行部分
- LTRANS:并行后端在每个分区中进行优化
现在,在实践中,GCC WHOPR 比 Clang Thin LTO 需要更多的内存和时间,但最近这个数字一直在提高。
推荐阅读
- php - 缺少 oci.dll 并且无法加载 php_oci8.dll
- c# - 当计时器倒计时到达 00:00:00 时,form1 在哪里以及如何重新开始下载?
- pine-script - PineScript - 多个进入/退出参数
- r - 根据两个列表之间的不同名称删除组件
- javascript - 将对象数组转换为另一个对象数组
- python - 控制台中的 driver.execute_script("arguments[0].click", button) 和 JS button.click() 有什么区别?
- git - 合并手动复制到新仓库但不共享共同祖先提交的 git 仓库
- arrays - 如何将信息从数组更新到 Firebase?
- sql - UPSERT 基于具有 NULL 值的 UNIQUE 约束
- c# - WPF 数据绑定,属性值更改 UI 不刷新其内容