This qualifier must takes a list of options 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=b
adjusts the leading dimensions
of arrays in COMMON blocks away from a power of 2 if the arrays
are not used as actual arguments to any of your subprograms.
You should use /aggressive=b
only if the conditions
for using /aggressive=a
are satisfied in addition
to the following condition:
This transformation should be used only if the performance
of the program will not be degraded by changing the leading
dimensions of arrays in COMMON blocks. It is most commonly
used in combination with option a
, as in
/aggressive=ab
.
/aggressive=c
allows inlining of routines
that contain static (SAVE or DATA) variables by promoting these
variables to members of a COMMON block introduced into the
program.
If the original program has DATA statements referring to some of the static variables, these DATA statements will now refer to members of the introduced COMMON block. Although most compilers support DATA statements that refer to elments of COMMON blocks, there may be some that do not. Therefore, this option should be used with care.
/aggressive=d
enables the compiler to
do better optimization by allowing the assumption that those
routines not processed by the compiler are side-effect free and
cannot call routines processed by the compiler.
This option enhances the abilities of interprocedural analysis and inlining to optimize the input program.
To explicitly disable these options, specify
/noaggressive
.