【问题标题】:gcc -funswitch-loops and -O3gcc -funswitch-loops 和 -O3
【发布时间】:2021-01-25 14:19:31
【问题描述】:

我对 GCC 的循环取消切换优化选项 -funswitch-loops 感兴趣,特别是实际启用它的原因。根据documentation

以下选项控制可能提高性能的优化,但任何-O 选项均未启用。本节包括可能产生损坏代码的实验选项。

...

-funswitch-loops

将具有循环不变条件的分支移出循环,两个分支上都有循环的重复项(根据条件结果进行修改)。

-fprofile-use-fauto-profile 启用。

因此,如果我还没有使用-fprofile-use-fauto-profile,似乎我必须将-funswitch-loops 显式添加到我的编译器标志列表中才能激活循环取消切换。很公平。虽然在同一个documentation的其他地方,我们发现

-O3

进一步优化。 -O3 开启-O2 指定的所有优化,同时开启以下优化标志:

...

-funswitch-loops

...

因此文档似乎声称-funswitch-loops-O3 开启,但它没有-O 中的任何开启选项。是哪一个?

【问题讨论】:

    标签: loops gcc optimization compiler-optimization


    【解决方案1】:

    您可以使用-v -Q 进行编译,以查看所有有效优化选项的列表。在 gcc 10.2 上使用 -v -Q -O3,我看到 -funswitch-loops 包含在内。

    所以它在“未被任何-O 选项启用”下的列表显然是一个错误。您可以将其报告为文档错误。

    【讨论】:

      猜你喜欢
      • 2013-11-10
      • 2013-11-06
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多