Optimization and tuning

Table 1. Optimization and tuning pragmas
Pragma Description
#pragma block_loop

Marks a block with a scope-unique identifier.

#pragma STDC cx_limited_range

Instructs the compiler that complex division and absolute value are only invoked with values such that intermediate calculation will not overflow or lose significance.

#pragma disjoint

Lists identifiers that are not aliased to each other within the scope of their use.

#pragma execution_frequency

Marks program source code that you expect will be either very frequently or very infrequently executed.

#pragma expected_value Specifies the value that a parameter passed in a function call is most likely to take at run time. The compiler can use this information to perform certain optimizations, such as function cloning and inlining.
#pragma isolated_call

Specifies functions in the source file that have no side effects other than those implied by their parameters.

#pragma leaves

Informs the compiler that a named function never returns to the instruction following a call to that function.

#pragma loopid

Marks a block with a scope-unique identifier.

#pragma nosimd When used with -qsimd=noauto, disables the generation of SIMD instructions for the next loop.
#pragma novector When used with -qhot=novector, disables auto-vectorization of the next loop.
#pragma option_override

Allows you to specify optimization options at the subprogram level that override optimization options given on the command line.

#pragma reachable

Informs the compiler that the point in the program after a named function can be the target of a branch from some unknown location.

#pragma reg_killed_by

Specifies registers that may be altered by functions specified by #pragma mc_func.

#pragma stream_unroll

When optimization is enabled, breaks a stream contained in a for loop into multiple streams.

#pragma unroll

Controls loop unrolling, for improved performance.

#pragma unrollandfuse

Instructs the compiler to attempt an unroll and fuse operation on nested for loops.