The -assume
switch tells KAP to make certain global
assumptions about the program being processed. Most of these can
also be controlled by various assertions (see Chapter 6). The -assume
switch settings and the
corresponding KAP assertions are as follows:
a
- Different subroutine or function
parameters can refer to the same object. C*$* assert
argument aliasing
b
- Array subscripts can go outside the
declared bounds. C*$* assert bounds violations
c
- Constants used in subroutine or function
calls will be placed in temporary variables. C*$* assert
temporaries
for constant arguments.
e
- EQUIVALENCE statements can cause
different names to refer to the same memory location. C*$*
assert equivalence hazard
l
- Unless KAP can prove they are unneeded,
KAP must insert code to assign to variables in transformed loops
the values they would have had after the original serial loop.
C*$* assert last value needed
By default, KAP assumes that a program conforms to the Fortran 77
standard, that is, -assume=el
. The default includes
-assume=c
to simplify some analysis and inlining.
To disable all the above assumptions, enter -noassume
on the command line.