インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

optimization_parameter

関数に関する特定の情報を最適化に渡します。

構文

Linux* および macOS*:

#pragma intel optimization_parameter target_arch=<CPU>

#pragma intel optimization_parameter inline-max-total-size=n

#pragma intel optimization_parameter inline-max-per-routine=n

Windows*:

#pragma [intel] optimization_parameter target_arch=<CPU>

#pragma [intel] optimization_parameter inline-max-total-size=n

#pragma [intel] optimization_parameter inline-max-per-routine=n

引数

target_arch=<CPU>

CPU の一覧は次のコンパイラー・オプションを参照してください: -m (/arch) および [Q]x

inline-max-per-routine=n

インライン展開処理で関数をインライン展開する回数の最大値を指定します。n は次のいずれかです。

o インライン展開処理で関数をインライン展開する回数の最大値を指定する負ではない整数定数。ゼロを指定すると、関数はインライン展開されません。

o キーワード unlimited は、インライン展開処理で関数をインライン展開する回数が無制限であることを示します。

詳細は、[Q]inline-max-per-routine オプションを参照してください。

inline-max-total-size=n

インライン展開時の関数サイズの上限を指定します。n は次のいずれかです。

o インライン展開時の関数サイズの上限を指定する負ではない整数定数です。ゼロを指定すると、関数はインライン展開されません。

o キーワード unlimited は、インライン展開時の関数サイズの上限がないことを示します。

詳細は、[Q]inline-max-total-size オプションを参照してください。

説明

intel optimization_parameter target_arch プラグマは、関数レベルで -m (/arch) オプションの設定を制御し、コマンドラインで指定されたオプションの値よりも優先されます。

特定の命令セット用のコードを生成するようにコンパイラーに指示するには、関数の先頭に#pragma intel optimization_parameter target_arch=<CPU> を追加します。これは -m (/arch) および [Q]x オプションと動作が似ていますが、指定した関数にのみ適用されます。

intel optimization_parameter inline-max-total-size=nintel optimization_parameter inline-max-per-routine=n は、関数のインライン展開時に使用される情報を指定します。

インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 用のコードを生成する例

 icc -mAVX foo.c   // on Linux* and macOS*

上記のコードは、指定されたコマンドライン・オプションに関係なく、関数 bar に対してのみインテル® AVX 用のコードを生成します。

インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 用の関数を生成する例

#pragma intel optimization_parameter target_arch=AVX
void bar() { ... }

関連情報