Overview: High-level Language Optimization

High-level optimizations (HLO) exploit the properties of source code constructs, such as loops and arrays, in the applications developed in high-level programming languages, such as C++. They include loop interchange, loop fusion, loop unrolling, loop distribution, unroll-and-jam, blocking, data prefetch, scalar replacement, data layout optimizations, and others. The option that turns on the high-level optimizations is -O3.

IA-32 and Itanium®-based applications
-O3 Enable -O2 option plus more aggressive optimizations, for example, loop transformation and prefetching. -O3 optimizes for maximum speed, but may not improve performance for some programs.
IA-32 applications
-O3 In addition, in conjunction with the vectorization options, -ax{K|W|N|B|P} and -x{K|W|N|B|P}, -O3 causes the compiler to perform more aggressive data dependency analysis than for -O2. This may result in longer compilation times.

Note

The -fast option enhances execution speed across the entire program by including the following options that can improve run-time performance:

To override one of the options set by -fast, specify that option after the -fast option on the command line. The options set by -fast may change from release to release.

To target -fast optimizations for a specific processor, use one of the -x options. For example:

prompt>icpc -fast -xW source_file.cpp