Using the HOT option
The HOT option enables the compiler to request high-order transformations on loops during optimization, which gives you the ability to generate more highly optimized code.
Loops typically account for the majority of the execution time
of most applications and the HOT optimizer performs in-depth analysis
of loops to minimize their execution time. Loop optimization techniques
include: interchange, fusion, unrolling of loop nests, and reducing
the use of temporary arrays. There are three goals in these optimizations:
- Reducing the costs of memory access through the effective use of caches and translation look-aside buffers (TLBs). Increasing memory locality reduces cache/TLB misses.
- Overlapping computation and memory access through effective utilization of the data prefetching capabilities provided by the hardware.
- Improving the utilization of processor resources through reordering and balancing the usage of instructions with complementary resource requirements. Loop computation balance typically involves load/store operations balanced against floating-point computations.