GCC の複数の最適化フラグ 質問する

GCC の複数の最適化フラグ 質問する

-02 と -03 の両方を設定してコンパイルするレガシー コードがいくつかあります。GCC のマニュアル ファイルから、次のことが保証されます。

-O3 は、-O2 で指定されたすべての最適化をオンにし、さらに -finline-functions、-funswitch-loops、-fpredictive-commoning、-fgcse-after-reload、および -ftree-vectorize オプションもオンにします。

したがって、一見すると、これらのフラグの両方をオンにすることは、-O3 だけをオンにすることと同じであるように思われます。しかし、その場合、-O2 の方がおそらく「より安全な」オプションなので、正しいやり方ではないかと考えました。明らかに、すべての組み合わせでコードをコンパイルし、それぞれのケースで何が起こるかを確認するのは簡単なことですが、GCC に複数の最適化レベルを指定する特定のポリシーがあるかどうか、また、ある場合、その理由は何なのかをご存知の方がいらっしゃいましたら、教えてください。

ベストアンサー1

からマニュアルページ:

レベル番号の有無にかかわらず、複数の -O オプションを使用する場合は、最後のオプションが有効になります。

おすすめ記事