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

引数

inline-max-per-routine=n

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

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

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

inline-max-total-size=n

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

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

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

説明

特定の命令セット用のコードを生成するようにコンパイラーに指示するには、関数の先頭に #pragma intel optimization_parameter target_arch=<CPU> を追加します。これは指定した関数にのみ適用されます。

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

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

C++: 

icx -mAVX foo.c   // Linux* および macOS*
DPC++:
dpcpp -mAVX foo.c   // Linux* および macOS*

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

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

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