【发布时间】: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