大域的な最適化

大域的な最適化を有効にするには,/optimize:2 かそれ以上の最適化レベルを使用します。/optimize:2 以上を使用すると,局所的な最適化 (/optimize:1) も有効となります。

大域的な最適化には次のものが含まれます。

データ・フローおよびスプリット・ライフタイム解析 (大域データ解析) は,変数と配列全体の値を,計算の際とプログラム単位のさまざまな部分で使用される際に追跡します。この解析において,Visual Fortran は,特定の配列に対する配列引用の任意の組は,両方の場合で定数の添字が使われていない限り,同じメモリー位置を参照するものと仮定します。

ループ内の不変式の不要な再計算を避けるために,Visual Fortran は不変式をループ外に移動して,1 回しか実行されないようにします。

大域データ解析には,どのデータ項目を解析の対象とするかという判断が含まれます。データ項目の中には,1 つのグループとして解析されるものや,個別に解析されるものがあります。Visual Fortran は,次に示す構成要素に参加しているデータ項目については,もっぱらその値を完全に追跡することが不可能であるという理由から,解析を制限したり,解析対象から外すことがあります。

次の宣言に含まれるデータ項目は,大域的な最適化の効果を下げることがあります。