インテル・アーキテクチャによって、最適化は異なる効果が得られます。目的のアーキテクチャに合った最適化を指定するには、以下の表を参照してください。
オプション | 効果 |
---|---|
-O1 | ソフトウェアによるパイプライン化をオフにすることによって、コードのサイズを最適化します。ループのアンロールおよびソフトウェアによるパイプライン化を除く -O と同じ最適化を有効にします。-O および -O2 は、ソフトウェアによるパイプライン化を有効にします。ほとんどの場合、-O1 よりも -O2 または -O1 のほうをお勧めします。 |
オプション | 効果 |
---|---|
-O, -O1, -O2 |
速度について最適化します。-fp オプションを無効にします。-O2 オプションはデフォルトではオンです。組込み関数の認識は無効です。 |
-O3 | -O2オプションに、最適化項目を加えて最適化を実行します。ループとメモリアクセスの変換が行われない限り、パフォーマンスが高くなることは保証されません。-axK と -xK オプション(IA-32 のみ)を組み合わせてこのオプションを使用すると、-O2 のときよりも詳細にデータ依存性解析が実行されます。そのためコンパイル時間が長くなる場合があります。 |
オプション | 効果 |
---|---|
-O2 | デフォルトでは、このオプションがオンになっています。-O2組込み関数のインライン化がオンになります。次の例では、ゼロ除算例外が発生したかどうかをテストします。
|
-O3 | -O2オプションに、例えば次の最適化項目を加えて最適化を実行します。プリフェッチ、スカラ置換、ループ変換。ループとメモリアクセスの変換が行われない限り、パフォーマンスが高くなることは保証されません。アプリケーションの時間を計るには「アプリケーションの時間測定」を参照してください。 |