gcc 有薄 lto 吗?
Does gcc have thin lto?
Clang 允许使用精简的 lto 来加快编译时间,同时仍保留使用带选项 -flto=thin
的 lto 的大部分优点。 gcc 是否有 clang 的 thin 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 多得多的内存和时间,但最近这个数字一直在改善。
Clang 允许使用精简的 lto 来加快编译时间,同时仍保留使用带选项 -flto=thin
的 lto 的大部分优点。 gcc 是否有 clang 的 thin 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 多得多的内存和时间,但最近这个数字一直在改善。