This qualifier takes the following options:
/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.
/aggressive=b
only if the conditions for using
/aggressive=a
are satisfied and no array in any common
block is passed as an actual argument to a function or subroutine.
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
.
Copyright © Digital Equipment Corporation. 1999. All Rights Reserved.