/unroll

構文:

/unroll:count

高い最適化レベルでは,/unroll オプションを使って,ループが展開される回数を指定することができます。/unroll オプションが指定されていないと,コンパイラがループ展開の回数を決定します (ほとんどのループでは 4 回。コードの大きさが大きいループや,ループ外への飛越しが含まれているループでは 2 回)。

ビジュアル開発環境では,「Fortran」タブの「Optimizations」カテゴリの「Loop Unroll Count」を指定します。

/optimize:3/optimize:4 (または等価なもの) または /optimize:5 オプションが指定されていると,ループ展開が行われます。count は 0 ~ 16 の範囲の整数でなくてはなりません。count 値 0 は,ループ展開の回数をコンパイラに決定させることを意味します (基本設定)。

コンパイラは,特定の最も内側のループを展開することで,飛越し回数を最小限に抑え,効率的な重複した命令の実行 (命令のパイプライン) を可能にするために,より多くの命令をまとめようと試みます。ループ展開の候補として最も適しているのは,制御の流れがそれほど複雑でない最も内側のループです。

特に ia32 システムでは,大きい値を指定する方がアプリケーションによっては実行時性能が向上することがあります。詳細については,「ループ展開」を参照してください。

cDEC$ UNROLL コンパイラ指示文を使って特定のループを展開する回数を指定することができます。「cDEC$ UNROLL コンパイラ指示文の使用」を参照してください。