最適化

デフォルトで、プログラムはコンパイル中には最適化されません。次の構文を使用して、最適化レベルを 1、2、または 3 に指定できます。

-opt level

たとえば、"-opt 2" のように指定します。レベルを指定せずに -opt を指定した場合は、デフォルトでレベル 3 の最適化が実行されます(-deb オプションを使用した場合は、レベル 1 または 2 のみが許可されることに留意してください。-deb を使用し、レベルを指定せずに -opt を指定した場合は、レベル 2 の最適化が実行されます)。次に、各レベルで実行される最適化について説明します。

レベル 説明
1 演算子パターンの置換およびブール条件式の最適化
2 共通する副次式の削除と、レベル 1 最適化のすべて
3 レベル 1 およびレベル 2 最適化のすべてと、次の内容:
  • ブランチのチェーン化
  • デッド コードの削除
  • 強度の引き下げ
  • ループの導入
  • ループ不変コードの移動
  • 冗長なレジスタの保存および読み込みの削除
  • 数学的恒等の削除
  • ピープホール最適化
  • 定数畳み込み