optimization_level

Controls optimization for one function or all functions after its first occurrence.

Syntax

#pragma [intel|GCC] optimization_level n

Arguments

intel|GCC

indicates the interpretation to use

n

an integer value specifying an optimization level; valid values are:

  • 0 same optimizations as -O0

  • 1 same optimizations as -O1

  • 2 same optimizations as -O2

  • 3 same optimizations as -O3

Description

The optimization_level pragma is used to restrict optimization for a specific function while optimizing the remaining application using a different, higher optimization level. For example, if you specify -O3 (Linux* and Mac OS* X systems) for the application and specify #pragma optimization_level 1, the marked function will be optimized at the -O1 option level, while the remaining application will be optimized at the higher level.

In general, the pragma optimizes the function at the level specified as n; however, certain compiler optimizations, like Inter-procedural Optimization (IPO), are not enabled or disabled during translation unit compilation. For example, if you enable IPO and a specific optimization level, IPO is enabled even for the function targeted by this pragma; however, IPO might not be fully implemented regardless of the optimization level specified at the command line. The reverse is also true.

Scope of optimization restriction

On Linux* and Mac OS* X systems, the scope of the optimization restriction can be affected by arguments passed to the -pragma-optimization-level compiler option as explained in the following table.

Syntax

Behavior

#pragma intel optimization_level n

Applies pragma only to the next function, using the specified optimization level, regardless of the argument passed to the -pragma-optimization-level option.

#pragma GCC optimization_level n or
#pragma GCC optimization_level reset

Applies pragma to all subsequent functions, using the specified optimization level, regardless of the argument passed to the -pragma-optimization-level option.

Specifying reset reverses the effect of the most recent #pragma GCC optimization_level statement, by returning to the optimization level previously specified.

#pragma optimization_level n

Applies either the intel or GCC interpretation. Interpretation depends on argument passed to the -pragma-optimization-level option.

Note iconNote

On Windows* systems, the pragma always uses the intel interpretation; the pragma is applied only to the next function.

Using the intel interpretation of #pragma optimization_level

Place the pragma immediately before the function being affected.

Example: #pragma intel optimization_level 1
gamma() {
...

}

Using the GCC* interpretation of #pragma optimization_level

Place the pragma in any location prior to the functions being affected.


Submit feedback on this help topic

Copyright © 1996-2011, Intel Corporation. All rights reserved.