ASSUME プラグマを制御するパラメータを設定します。
このフラグを使用して、コンパイラがソースコード内の ASSUME プラグマを処理する方法を制御します。
プログラマは ASSUME プラグマを使用することによって、コンパイラがより良い最適化を得るために使用できる特殊な情報を表明することができます。これらの表明は、確率を指定することができます。確率が 0 または 1 の場合は確実 (certain) とされ、それ以外の場合は不確実 (non-certain) とみなされます。
また、可能性または確実性を指定して、次に DO ループのトリップカウント、または分岐が起こることを表明することもできます。
f95 コンパイラが認識する ASSUME プラグマの説明については、「2.3.1.9 ASSUME 指令」を参照してください。
-xassume_control オプションの keywords には、1 つのサブオプションキーワードまたはコンマで区切られたキーワードのリストを指定できます。認識されるキーワードサブオプションは、次のとおりです。
optimize |
ASSUME プラグマで指定される表明は、プログラムの最適化に影響を与えます。 |
check |
コンパイラは確実とマークされたすべての表明の正確さを検査するコードを生成し、表明が違反している場合は実行時メッセージを出力します。プログラムは fatal が指定されていなければ、処理を続行します。 |
fatal |
check とともに使用すると、確実とマークされている表明が違反を起こすとプログラムは終了します。 |
retrospective[:d] |
d パラメータはオプションの許容値で、1 未満の正の実数定数を指定する必要があります。デフォルトは「.1」です。retrospective を指定すると、すべての表明について真と偽をカウントするコードをコンパイルします。値が許容値 d を超えると、プログラム終了時に一覧が出力されます。 |
%none |
すべての ASSUME プラグマが無視されます。 |
コンパイラのデフォルトは次のとおりです。
-xassume_control=optimize
これは、コンパイラが ASSUME プラグマを認識し、最適化に影響を与えますが、検査は行わないという意味です。
パラメータを指定しない場合、-xassume_control は次と同義です。
-xassume_control=check,fatal
この場合、コンパイラは certain とマークされたすべての ASSUME プラグマを受け付け、検査しますが、最適化には影響を与えません。表明が無効の場合、プログラムは終了します。