HP Fortran Programmer's Guide (B3908-90031; September 2011)

Performance and optimization
Using options to control optimization
Chapter 6156
+O[no]loop_block +O3 or higher Loop blocking is a combination of strip mining
and interchange that improves data cache locality.
It is provided primarily to deal with nested loops
that manipulate arrays that are too large to fit into
the data cache. Under certain circumstances, loop
blocking allows reuse of these arrays by
transforming the loops that manipulate them so
that they manipulate strips of the arrays that fit
into the cache.
+O[no]loop_transform +O2 or higher This option transforms [does not transform]
eligible loops for improved cache and other
performance.
The default is +Oloop_transform.
+O[no]loop_unroll=n +O2 or higher Unroll [do not unroll] program loops by a factor
of n. The default is +Oloop_unroll=4.
+O[no]loop_unroll_jam +O3 or higher Loop unroll-and-jam involves partially unrolling
one or more loops higher in the nest than the
innermost loop, and fusing ("jamming") the
resulting loops back together. This transformation
is primarily intended to increase register reuse
and decrease memory loads and stores per
operation within an iteration of a nested loop.
+moduleoptimize All The compiler reads only required information
from a module file. Optimized module files are
created by discarding redundant information
while importing the module file. In case of nested
modules or hierarchical modules, the compilation
time and memory requirement of compiler can be
reduced by using this option.
+O[no]moveflops +O2 or higher Enable [disable] moving conditional
floating-point instructions out of loops. The
default is +Omoveflops.
Table 6-3 Fine-tuning optimization options (Continued)
Option Level Function