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

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

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

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

プラグマ

説明

alloc_section

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

cilk grainsize

cilk_for ループで処理される 1 回あたりの反復のサイズ (粒度サイズ) を指定します。インテル® Cilk™ Plus は古い機能 (非推奨) です。

distribute_point

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

inline

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

intel_omp_task

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

intel_omp_taskq

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

ivdep

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

loop_count

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

nofusion

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

novector

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

offload

文をターゲット上で実行します。このプラグマは、インテル® MIC アーキテクチャーおよびインテル® グラフィックス・テクノロジーに適用されます。

offload_attribute

プラグマの後で宣言されたすべての関数と変数がターゲットで利用可能であることを示します。このプラグマは、インテル® MIC アーキテクチャーおよびインテル® グラフィックス・テクノロジーにのみ適用されます。

offload_transfer

同期データ転送を開始して完了します。signal 節と一緒に使用すると、非同期データ転送を開始します。このプラグマは、インテル® MIC アーキテクチャーにのみ適用されます。

offload_wait

開始した非同期データ転送を待つように指定します。このプラグマは、インテル® MIC アーキテクチャーにのみ適用されます。

optimization_level

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

optimization_parameter

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

optimize

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

parallel/noparallel

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

prefetch/noprefetch

コンパイラーにより、メモリーからのデータ・プリフェッチ要求を発行または無効にします。このプラグマは、インテル® MIC アーキテクチャーおよびインテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) にのみ適用されます。

simd

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

simdoff

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

unroll/nounroll

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

unroll_and_jam/nounroll_and_jam

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

unused

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

vector

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