Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference

ID 767253
Date 7/13/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

concurrency_safe

Guides the compiler to parallelize more loops and straight-line code.

Syntax

Windows:

__declspec(concurrency_safe(clause))

Linux:

__attribute__((concurrency_safe(clause)))

Arguments

clause

Is one of the following:

cost(cycles): Specifies the execution cycles of the annotated function for the compiler to perform parallelization profitability analysis while compiling its enclosing loops or blocks. The value of cycles is a 2-byte unsigned integer (unsigned short); its maximal value is 2^16-1. If the cycle count is greater than 2^16-1, you should use profitable.

profitable: Specifies that the loops or blocks that contain calls to the annotated function are profitable to parallelize.

Description

This keyword specifies that there are no incorrect side-effects and no illegal (or improperly synchronized) memory access interferences among multiple invocations of the annotated function or between an invocation of this annotated function and other statements in the program, if they are executed concurrently.

For every function that is marked with this keyword, you must ensure that its side effects (if any) are acceptable (or expected), and the memory access interferences are properly synchronized.