2011-04-05 81 views
15

我有一些遗留代码,编译-02和-03集合。从GCC男子文件,我得到了保证:GCC多个优化标记

-O3开启所有-O2指定的优化并开启对-finline的功能,-funswitch-循环,-fpredictive-共用,-fgcse-后加载和-ftree-vectorize 选项。

因此,乍一看,将这两个标志打开的可能性与-O3相同。然而,这让我想到,在这种情况下做正确的事情是-O2可能是“更安全”的选择。显然,这是一件简单的事情,用所有的排列方式编译一些代码,看看每种情况下会发生什么,但我想知道是否有人知道GCC是否有指定多个优化级别的具体策略,以及如果有的话是背后的推理吗?

回答

29

man page

如果使用多个-O选项,有或无级数字,最后一个这样的选择是一个是有效的。