VMS Help
FORTRAN, /ASSUME
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
/ASSUME=(option[,...]) D=/ASSUME=(ACCU,NOBYTERECL,NODUMM)
Specifies what the compiler can assume about program behavior
without affecting correct results when it optimizes code.
Controls whether code transformations that affect the results of
floating-point operations are allowed. These changes can affect
the correctness of the program's results.
If you specify NOACCURACY_SENSITIVE, the compiler is free to
reorder floating-point operations, based on algebraic identities
(inverses, associativity, and distribution). This allows the
compiler to generate optimized forms of sum reductions (such as dot
products) and to move divide operations outside loops, improving
performance.
The default, ACCURACY_SENSITIVE, directs the compiler to use only
naive scalar rules for calculations. This setting can prevent some
optimizations.
Controls the unit value for the RECL= keyword in an OPEN or
INQUIRE statement for unformatted files.
If BYTERECL is specified, the RECL value is in units of bytes;
if NOBYTERECL is specified, the RECL value is in units of
four-byte longwords. NOBYTERECL is the default and is compatible
with the default used by Compaq's Fortran products. NOBYTERECL
may be used to provide compatibility with non-Compaq platforms.
To run an application which uses /ASSUME=BYTERECL, OpenVMS VAX V7.0
or installation of a compatible Run-Time Library is required. For
more information, see the Compaq Fortran 77 Release Notes.
Controls whether dummy (formal) arguments that share memory
locations with other dummy arguments or COMMON block variables
affect program results.
This option is provided because many important opportunities for
optimizing are lost when the compiler is forced to assume that this
type of memory sharing occurs in a source program.
If DUMMY_ALIASES is specified, program semantics require frequent
recomputations on expressions involving dummy arguments or COMMON
block variables. It assures correct results but inhibits some
vectorization and some scalar optimizations, thus slowing
performance.
With the default, NODUMMY_ALIASES, program semantics allow
optimizations on expressions involving dummy arguments and COMMON
block variables. It results in higher performance but can cause
programs to fail if they depend on such aliases. It should only be
used for source programs that strictly obey FORTRAN-77 rules for
overlapping memory references in dummy arguments.
If you compile a program containing dummy aliasing with
NODUMMY_ALIASES in effect, the run-time behavior of the program
will be unpredictable. The run-time behavior will depend on the
exact optimizations that are performed. In some cases, normal
results will occur; however, in other cases, results will differ
because the values used in computations involving the offending
aliases will differ.
Same interpretation as /ASSUME=(ACCURACY_SENSITIVE,BYTERECL,
DUMMY_ALIASES).
Same interpretation as
/ASSUME=(NOACCURACY_SENSITIVE,NOBYTERECL,NODUMMY_ALIASES).
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.