HLO Overview

High-level optimizations exploit the properties of source code constructs (for example, loops and arrays) in the applications developed in high-level programming languages, such as Fortran and C++. The high-level optimizations include loop interchange, loop fusion, loop unrolling, loop distribution, unroll-and-jam, blocking, data prefetch, scalar replacement, data layout optimizations and loop unrolling techniques.

The option that turns on the high-level optimizations is -O3. See high-level language options summary. The scope of optimizations turned on by -O3 is different for IA-32 and Itanium(TM)-based applications. See Setting Optimization Levels.

IA-32 and Itanium(TM)-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{M|K|W} and -x{M|K|W}, -O3 causes the compiler to perform more aggressive data dependency analysis than for -O2. This may result in longer compilation times.