首页 > 解决方案 > gcc有薄lto吗?

问题描述

Clang 允许使用瘦 lto 来加快编译时间,同时仍然保留使用 lto 和 option 的大部分优点-flto=thin。gcc 有相当于 clang 的瘦 lto 吗?

标签: gccclanglto

解决方案


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 需要更多的内存和时间,但最近这个数字一直在提高。


推荐阅读