大胆度 つまり負うリスクの大きさが XL Fortran の最適化の特徴です。最高の最適化|レベルだけが以下の大胆な最適化を実行しますが、その場合でもリスクは、想定されるプログラムの小さなサブセットの中のごくわずかな結果の差にすぎません。
大胆度の低い最適化は、最適化していない同等のプログラムの場合とまったく同じ結果を出すことを意図します。
DO 10 J=1,N ... IF (K .NE. 0) M(J)=N/K ... 10 END
しかし、K が 0 である場合、最適化していないプログラム内では何も起こらなくても、N/K の計算を行うと例外が発生するので、移動は行われません。
最適化レベルが上がるにつれて、パフォーマンスを改善できる所でこれらの制限は認められます。
|最高レベルの最適化を指定した場合、すでに説明したように、XL Fortran は |リスクの可能性があってもスピードを要求していると見なします。結果としてリスクを発生させないで、できる限り高い最適化を望む場合は、別のコンパイラー・オプション -qstrict を追加する必要があります。
|初期の XL ファミリーのコンパイラーは、最適化に対して保守的なアプローチを採用していたので、現実には起こり得ない極端なケースでも、最適化したプログラムを最適化していないプログラムとまったく同じように機能させようとしていました。たとえば、配列参照 A(N) は最適化されませんでした。N が非常に大きくて、アドレスが参照されるときにプログラムがセグメント化違反を発生させて、この動作が『保留』されるからです。それに比べれば、業界は一般的に保守的ではないアプローチを奨励しており、XL Fortran の最高の最適化レベルは、現在、最適化してあるプログラムと最適化していないプログラムの間でまったく同じ実行を達成することよりもパフォーマンスを重視しています。
種々のレベルの -O オプションが、多種多様のプログラムに対して最適化技法を受け入れます。この技法を使ってパフォーマンスを改善することができます。特殊化された最適化オプション、たとえば、-qipa、-qhot、および -Q は、ある種のプログラムではパフォーマンスを改善できますが、他のプログラムではパフォーマンスを低下させます。したがって、所定のプログラムにそれらのオプションが適しているかどうかをテストする必要がある場合があります。