ループ変換

ループ変換の最適化は,/transform_loops オプションまたは /optimize:5 オプションを使用することで有効となります。ループ変換は,メモリー・システムをより効果的に利用できるようにループを書き換えることで,性能を向上させようと試みます。ループ変換の最適化は,ループを書き換えることにより,実行される命令数を増やすことがあるので,一部のプログラムでは実行時性能が低下する可能性があります。

ソフトウェア・パイプラインなしのループ変換の最適化を要求するには,次のいずれかを行います。

ループ変換の最適化は,ループ内の配列引用に適用されます。これらの最適化はメモリー・システムの性能を向上させることができ,通常は複数のループの入れ子に適用されます。ループ変換の最適化の対象として選択されるループは,つねに繰返し回数付きループです。繰返し回数付きループとは,ループに入る前に繰返し回数がわかるような形で,繰返し回数を数える変数を使用しているループのことです。たとえば,ほとんどの DO ループは繰返し回数付きループです。

一般に,ループ変換の最適化が行われるのを妨げる条件には,インライン展開されない副プログラム引用 (外部関数呼び出しなど),複雑な終了条件,および繰返し回数のないループなどがあります。

/transform_loops に関連付けられた最適化の形式には次のものが含まれます。

コンパイラ・オプションの相互作用と,ループ変換の最適化を使ってコンパイルされたプログラムの実行時間の測定についての詳細は,「/[no]transform_loops」を参照してください。