インテル® コンパイラー固有のプラグマ・リファレンス

インテル® oneAPI DPC++/C++ コンパイラー固有のプラグマを以下に示します。各プラグマの詳細については、プラグマ名をクリックしてください。

一部のプラグマはインテル製マイクロプロセッサーおよび互換マイクロプロセッサーで利用可能ですが、インテル製マイクロプロセッサーにおいてより多くの最適化が行われる場合があります。

プラグマ

説明

alloc_section

指定したセクションに 1 つ以上の変数を割り当てます。変数のセクション属性指定を制御します。

distribute_point

指定された位置でループ分配を行うようにコンパイラーに指示します。

inline

文内のすべての呼び出しのインライン展開を指定します。forceinline と noinline プラグマについても示します。

intel_omp_task

インテルの以前のタスク用に、潜在的に異なるスレッドで実行される作業単位を指定します。

intel_omp_taskq

インテルの以前のタスク用に、囲まれた task プラグマに指定された作業単位をキューイングする while ループの環境を指定します。

ivdep

ベクトル依存性が存在していると推定されてもそれを無視するようにコンパイラーに指示します。

loop_count

for ループの反復数を指定します。

nofusion

ループが隣接するループと融合されないようにします。

novector

特定のループをベクトル化しないように指定します。

optimization_level

1 つの関数またはすべての関数の最適化を制御します。

optimization_parameter

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

omp simd early_exit

複数の終了ポイントを持つループのベクトル化を許可するように #pragma omp simd を拡張します。

optimize

このプラグマから別の最適化プラグマまたは翻訳単位の最後に到達するまで最適化を有効または無効にします。

parallel /noparallel

ループ直後の自動並列化を行う依存性を解決するか (parallel)、ループ直後の自動並列化を抑止します (noparallel)。

simd

ループのベクトル化を実行します。

simdoff

SIMD レーンの論理的な順序でシリアルに実行すべきループのコードブロックまたは SIMD 対応関数を指定します。

unroll / nounroll

カウントされたループをアンロールする [しない] ようにコンパイラーに指示します。

unroll_and_jam / nounroll_and_jam

ループアンロールとジャムを有効 / 無効にします。これらのプラグマは、反復される for ループにのみ適用できます。

unused

未使用の変数を示します (警告メッセージは生成されません)。

vector

ループを引数キーワードに従ってベクトル化するようにコンパイラーに指示します。