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

concurrency_safe

より多くのループと直列型コードを並列化するようにコンパイラーに指示します。

構文

Windows®:

__declspec(concurrency_safe(clauses))

Linux*:

__attribute__((concurrency_safe(clauses)))

引数

clauses

次のいずれかです。

cost(cycles): アノテーション付けした関数の実行サイクルを指定して、その囲まれたループやブロックのコンパイル中にコンパイラーが並列化の有効性解析を実行できるようにします。 cycles の値は 2 バイトの符号なし整数 (unsigned short) で、最大値は 2^16-1 です。サイクルカウントが 2^16-1 を超える場合、profitable を使用してください。

profitable: アノテーション付けした関数への呼び出しを含むループまたはブロックの並列化が有効であることを示します。

説明

このキーワードの使用は、アノテーション付けした関数の複数の呼び出し間、またはこの関数とプログラムの別の文 (同時に実行されていれば) の間で、不適切な副作用がないこと、不正な (または不適切に同期化された) メモリーアクセスがないことをコンパイラーに示します。

このキーワードを付けた各関数について、副作用 (ある場合) が許容範囲 (または想定範囲) 内であり、メモリーアクセスが適切に同期されることを確認する必要があります。