如果我设置优化-O3,C++ 整个程序优化是不是在 gcc 中完成?

Posted

技术标签:

【中文标题】如果我设置优化-O3,C++ 整个程序优化是不是在 gcc 中完成?【英文标题】:Is C++ whole program optimization done in gcc if I set optimization -O3?如果我设置优化-O3,C++ 整个程序优化是否在 gcc 中完成? 【发布时间】:2013-11-05 16:23:29 【问题描述】:

我想知道如果我只是在 gcc 中指定优化级别 3(在 Ubuntu 12.04 上运行的版本 4.8.1),或者我是否必须将整个程序优化明确指定为 gcc 选项,是否完成了整个程序优化?

【问题讨论】:

【参考方案1】:

-fwhole-program(和-flto不会由任何-O 选项自动设置。 来源:http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html。属于-O 优化级别的选项在其中被标记为这样,并且每个-O 也有一个启用选项的列表。

【讨论】:

请注意,您可能需要-flto,而不是-fwhole-program 公平点。 -flto 也不会自动设置,相应地编辑了我的答案。

以上是关于如果我设置优化-O3,C++ 整个程序优化是不是在 gcc 中完成?的主要内容,如果未能解决你的问题,请参考以下文章

-O1 -O2 -O3 优化的原理是什么?

为啥优化标志 (-O3) 不能加快四倍精度计算?

GCC:程序不适用于编译选项 -O3

使用keil4的程序自动优化,如直接设置为9级优化,和0级相比会导致程序错误吗

使用-O3在osx上的g ++优化错误

如果我优化大小而不是速度,为什么GCC会生成15-20%的代码?