|
About the High-Level Optimizer (HLO)
|
Pro
HLO optimizes for maximum speed. |
Cons
|
Using HLO may cause the
compiler to rewrite your algorithm, and it may not improve
performance for some programs.
|
|
On IA-32, using HLO in
conjunction with the vectorization options (-Qax[K|W|N|B|P]
and -Qx[K|W|N|B|P]) causes
the compiler to perform more aggressive data dependency
analysis than for -O2, which may result in longer compilation
times. |
|
|
On both the IA-32 and Itanium® architectures, -O3
invokes the the High Level Optimizer (HLO), which enables the -O2
option plus more aggressive optimizations, such as loop transformation
and prefetching. HLO optimizes for maximum speed, and may actually rewrite
your algorithm to get the most cache hits possible.
As with the vectorizer, loops must meet the following criteria to qualify
for HLO:
- iteration independence
- memory disambiguationall
memory references within the loop are unique.
- high loop count
|
|