4

最近、GCC を使用してプログラムをコンパイルしましたが、-O1最適化オプションを使用するとうまくいきませんでした。使用には問題ありませんでした-O0-O1そのため、公式ドキュメントにある 、 、 などのオプション-fauto-inc-dec-fcompare-elim置き換えました-fcprop-registers。ただし、バグなく正常に動作しますが、パフォーマンスはあまり良くありません。

-O1これらの小さなコンパイルオプションと同等かどうか知りたいですか?

4

2 に答える 2

3

最適化をまったくオンにする ( -O1vs ) と、フラグが制御しない-O0方法でコード生成が変更されます。gcc ドキュメント-fの次の文に注意してください。

すべての最適化がフラグによって直接制御されるわけではありません。このセクションには、フラグを持つ最適化のみがリストされています。

一部の詳細は、非常に特定の gcc バージョン番号に依存します (たとえば、gcc 4.2 と gcc 4.5、4.9 など)。

于 2013-08-06T06:19:08.530 に答える
1

-O1、次の最適化フラグをオンにします。

      -fauto-inc-dec 
      -fcompare-elim 
      -fcprop-registers 
      -fdce 
      -fdefer-pop 
      -fdelayed-branch 
      -fdse 
      -fguess-branch-probability 
      -fif-conversion2 
      -fif-conversion 
      -fipa-pure-const 
      -fipa-profile 
      -fipa-reference 
      -fmerge-constants
      -fsplit-wide-types 
      -ftree-bit-ccp 
      -ftree-builtin-call-dce 
      -ftree-ccp 
      -ftree-ch 
      -ftree-copyrename 
      -ftree-dce 
      -ftree-dominator-opts 
      -ftree-dse 
      -ftree-forwprop 
      -ftree-fre 
      -ftree-phiprop 
      -ftree-slsr 
      -ftree-sra 
      -ftree-pta 
      -ftree-ter 
      -funit-at-a-time
于 2013-08-06T03:12:49.277 に答える