The -aggressive
switch must take one of two forms as
follows:
-aggressive=a
, tells KAP to
pad COMMON blocks to avoid cache line collisions. This form of
optimization is safe when the following conditions are satisfied:
Most Fortran programs satisfy these conditions, so enabling this form of optimization can yield significant performance gains.
-aggressive=ab
, in
addition to padding COMMON blocks, adjusts the leading
dimensions of arrays away from a power of 2, if the arrays
are not used as actual arguments to any user procedure
calls. Use -aggressive=ab
only if the
-aggressive=a
requirements hold, and if the
performance of the program will not be affected by changing the
leading dimensions of arrays.
-aggressive=c
, permits KAP
to inline routines that contain static SAVE or DATA variables
by promoting the static variables to members of a COMMON that is
introduced into the program.
If the original program has DATA statements on some of the static variables, these DATA statements will now be to elements of a COMMON.
To explicitly disable this transformation, specify
-noaggressive
. See also the -natural
, -cacheline
, -cachesize
, and
-setassociativity
command-line switches.