最適化レベルの選択

最適化を行うと、コンパイル時間は長くなりますが、通常は、実行時間は 短くなります。 XL Fortran を使用すれば、最適化をコンパイル時に実行したいかどうかを 選択することができます。 デフォルトでは、コンパイラーは非常に限定された最適化を 実行します (-O0 または -qnoopt)。

コンパイラーの最適化を使用可能にするには、-O コンパイラー・オプションと、レベルを示す数字を指定してください。 下の表は、それぞれの最適化レベルにおけるコンパイラーの動作を要約したものです。

最適化レベル
オプション 動作
-qnoopt/-O0 コンパイルは高速、コードはデバッグ可能、プログラム・セマンティクスは保持される。
-O2 (-O と同じ) 包括的な低レベルの最適化。部分的デバッグがサポートされる。
-O3 より広範囲な最適化。一部の精度がトレードオフされる。
-O4 および -O5 プロシージャー間の最適化。ループ最適化。自動マシン・チューニング。

最適化レベル -O2

最適化レベル -O2 (-O と同じ) では、コンパイラーは 包括的な低レベル最適化を実行します。 これには以下の技法が含まれます。

最適化レベル -O2 での 最小デバッグ情報 は、以下の動作から構成されます。

最適化レベル -O3

最適化レベル -O3 では、コンパイラーは -O2 よりもさらに 幅広い最適化を実行します。 最適化は、次のようにして拡大され掘り下げられます。

-qnostrict の暗黙設定により、以下のような精度のトレードオフがコンパイラーによって 行われます。

-O3 最適化は以下を行います。

実行時パフォーマンスが非常に重要な要因であり、マシン・リソースが余分なコンパイル時の動作に適応できる 場合は、-O3 オプションを使用してください。

実行される正確な最適化は、次のような多数の要因によって決まります。

-O2 および -O3 を最大限に活用する

最適化レベル -O2-O3 を使用するための推奨アプローチは以下のとおりです。

-O4 および -O5 オプション

最適化レベル -O4-O5 は、自動的に他のいくつかの最適化オプションを活動化します。 最適化レベル -O4 には以下が含まれます。

最適化レベル -O5 には以下が含まれます。

-O5 をコンパイル・ステップで指定する場合は、リンク・ステップでも指定する必要があります。 -qipa オプションは厳密に言って最適化レベルではありませんが、 これは最適化をすべてのプロシージャーに拡張します (プロシージャーが別のファイルにある場合も)。 また、このオプションは他の最適化オプション、特に -O (任意のレベルで) によって行われた最適化の効率を高めます。 また、本質的にコンパイルの時間を長くする可能性があるので、すでにデバッグしてあって、使用する準備が できているアプリケーションを調整する場合などに使用できます。 Fortran と、IBM XL C/C+ コンパイラーでコンパイルした C または C++ コードの組み合わせがアプリケーションに 含まれている場合、-O5 オプションを指定してコードすべてを コンパイルおよびリンクして、追加の最適化を実行することができます。

関連情報:
IBM Copyright 2003