ループの添字式の中間演算でオーバーフローがないことを、コンパイラーが仮定するかどうか指定します。
IA-32 アーキテクチャーおよびインテル® 64 アーキテクチャー
Linux および Mac OS X: |
-opt-subscript-in-range -no-opt-subscript-in-range |
Windows: |
/Qopt-subscript-in-range /Qopt-subscript-in-range- |
なし
-no-opt-subscript-in-range |
コンパイラーは、ループの添字式の中間演算でオーバーフローを仮定します。 |
このオプションは、ループの添字式の中間演算でオーバーフローがないことを、コンパイラーが仮定するかどうか指定します。
-opt-subscript-in-range (Linux および Mac OS X) または /Qopt-subscript-in-range (Windows) を指定すると、コンパイラーはデータ型の変換を無視し、添字式の中間演算でオーバーフローがないことを仮定します。この機能は、より多くのループ変換を可能にします。
なし
これらのオプションが役立つ例を次に示します。m は long (64 ビット) 型として宣言され、添字内のその他の変数はすべて int (32 ビット) として宣言されています。
A[ i + j + ( n + k) * m ]