The Loop Table listing (/listoptions=l ) includes an
entry for each loop indicating whether it was optimized, or why
it was not. This section lists the possible messages and gives a
brief explanation for each. The two most common reasons for a loop
to be left serial are that the iterations were not independent (the
listing should give a Data Dependence message) and that the loop
contained I/O statements.
   - Bad intrinsic call - Code rearrangement by KAP may
   give unpredictable results.
   
 - Bad operator - Code rearrangement by KAP may give
   unpredictable results.
   
 - Branches out of/into loop - Code may be iteration-
   order dependent.
   
 - CALL with alternate returns - Program flow too
   uncertain.
   
 - IO statements in loop - Input/Output assumed order-
   dependent.
   
 - Cannot allocate temporary array - Usually, a Data
   Dependence could have been lifted by expanding a scalar into an
   array, but there was a name conflict.
   
 - Distributed - Loop divided into smaller loops, some
   of which may be otherwise optimized.
   
 - DO statement not optimizable - For example,
   iteration count of a DO WHILE loop is not known.
   
 - Fused with other loops - Adjacent loops joined into
   a larger loop to reduce overhead.
   
 - GOTO in loop - Possible flow patterns too
   complicated for KAP.
   
 - Left as DO loop - Usually, a Data Dependence
   prevented optimization.
   
 - Left as a serial loop  - Usually, too much
   synchronization required.
   
 - Nested IFs - The branching pattern was too
   complicated.
   
 - No optimizable statements - For example, no
   arithmetic in loop.
   
 - Not enough work  - Optimization overhead greater
   than expected gain.
   
 - Optimization disabled - By a directive or
   assertion.
   
 - Scalar directive - A directive or assertion turned
   off optimization.
   
 - Scalar mode preferable - Usually, too much
   synchronization needed.
   
 - Too many inner loops: LIMIT > integer - VERY
   complicated loop nest; KAP will try to optimize inner loops.
   
 - Too many stmts/DD arcs - VERY complicated loop
   nest; try increasing 
/arclimit .
    - Unoptimizable call - SUBROUTINE or FUNCTION with
   unknown side effects.
   
 - Unoptimizable intrinsic call - Unknown side
   effects.
   
 - Unoptimizable operation - For example, character
   string manipulation.
   
 - Unoptimizable statements in loop - Usually I/O.
   
 - Unoptimizable symbol use - Variable used in a
   complicated way, such as with COMMON or EQUIVALENCE.
   
 - Unoptimizable variable or operation type - Only
   numerical work is easily optimized by KAP Fortran for OpenVMS
   ALPHA.
   
 - Unrolled - Loop would run more efficiently than
   rolled up (see explanations in Chapter 4
   and Chapter 8).
   
 
Previous Page | Next Page | Contents | Index | 
Command-Line Qualifiers