Intel® C++ Compiler XE 13.1 User and Reference Guides

Intel-Specific Pragmas

The Intel-specific C++ compiler pragmas described in the Intel-Specific Pragma reference are listed below.

Some pragmas are available for both Intel® and non-Intel microprocessors but they may perform additional optimizations for Intel® microprocessors than they perform for non-Intel microprocessors.

Click on the pragmas for a more detailed description.

Pragma

Description

alloc_section

allocates variable in specified section

cilk grainsize

specifies the grain size for one cilk_for loop

distribute_point

instructs the compiler to prefer loop distribution at the location indicated

inline

instructs the compiler that the user prefers that the calls in question be inlined

intel_omp_task

for Intel legacy tasking, specifies a unit of work, potentially executed by a different thread

intel_omp_taskq

for Intel legacy tasking, specifies a unit of work, potentially executed by a different thread

ivdep

instructs the compiler to ignore assumed vector dependencies

loop_count

indicates what the loop count is likely to be

nofusion

Prevents a loop from fusing with adjacent loops

novector

specifies that the loop should never be vectorized

offload

causes the statement following the pragma to execute on the target; this pragma only applies to Intel® MIC Architecture.

offload_attribute

specifies that all functions and variables declared subsequent to the pragma are available on the coprocessor; this pragma only applies to Intel® MIC Architecture.

offload_transfer

initiates asynchronous data transfer, or initiates and completes synchronous data transfer; this pragma only applies to Intel® MIC Architecture.

offload_wait

specifies a wait for a previously initiated asynchronous activity; this pragma only applies to Intel® MIC Architecture.

omp atomic

ensures that a specific memory location is updated atomically, which prevents the possibility of multiple, simultaneous reading and writing of threads

omp task

defines a task region

omp taskyield

enables or disables optimizations for specific functions; provides some degree of compatibility with Microsoft's implementation of optimize pragma

omp taskwait

specifies a wait on the completion of child tasks generated since the beginning of the current task

optimize

enables [disables] optimizations for code after this pragma till another optimize pragma or end of the translation unit is encountered

optimization_level

indicates change of optimization from current line of the compilation unit

optimization_parameter

tells the compiler to generate code specialized for a particular processor, at the function level, similar to the -m (/arch) option

parallel/noparallel

facilitates auto-parallelization of an immediately following loop; using keyword [always] forces the compiler to auto-parallelize; noparallel pragma prevents auto-parallelization

prefetch/noprefetch

asserts that the data prefetches are generated or not generated for some memory references; this pragma only applies to Intel® MIC Architecture.

simd

instructs the compiler to vectorize the loop below

unroll/nounroll

instructs the compiler the number of times to unroll/not to unroll a loop

unroll_and_jam/nounroll_and_jam

instructs the compiler to partially unroll higher loops and jam the resulting loops back together. Specifying the nounroll_and_jam pragma prevents unrolling and jamming of loops.

unused

describes variables that are unused (warnings not generated)

vector

indicates to the compiler that the loop should be vectorized according to the arguments: always/aligned/unaligned/nontemporal/temporal


Submit feedback on this help topic