Compaq KAP Fortran/OpenMP for Tru64 UNIX

Compaq KAP Fortran/OpenMP
for Tru64 UNIX

Quick Reference



Order Number: AV--QMB7F--TE


June 2000

This document lists Compaq KAP Fortran/OpenMP for Tru64 UNIX command-line options.

For more information about these options, see the Compaq KAP Fortran/OpenMP for Tru64 UNIX User Guide.

Revision/Update Information: This is a revised document.

Operating System and Version: Compaq Tru64 UNIX Versions 4.0F, 5.0, and 5.0A

Software Versions: Version 4.3
Compaq Fortran Version 5.3

Compaq Computer Corporation
Houston, Texas


© 1995 Compaq Computer Corporation

© 1995 Kuck & Associates, Inc.

Compaq, the Compaq logo, Compaq C, and Compaq Fortran, Registered in U.S. Patent and Trademark Office.

KAP is a trademark of Kuck & Associates, Inc.

UNIX is a registered trademark of The Open Group.

All other product names mentioned herein may be trademarks or registered trademarks of their respective companies.

Compaq shall not be liable for technical or editorial errors or omissions contained herein. The information in this document is subject to change without notice.

Table 1 Command-Line Switches for the kf90 Driver
Long Name Short Name Default Value
fext=
<Fortran file extension>
  fext=f
f90=
<path to Fortran compiler>
  f90=
/usr/bin/f90
f90kap=<path to kapf90>   kapf90=
/usr/bin/kapf90
fkapargs=<kap option string>    
S   off
tmpdir=
<temporary directory path>
  tmpdir=/tmp/
tune=<architecture>   tune=current system architecture
verbose v nov

Table 2 KAP Command-Line Options for the kapf90 Translator
Long Name Short Name Default Value
General Optimization    
[no]interchange interchange interchange
namepartitioning=
<integer>,<integer>
namepart=
<integer>,<integer>
nonamepart
optimize=<integer> o=<integer> o=5
roundoff=<integer> r=<integer> r=3
scalaropt=<integer> so=<integer> so=3
skip sk nosk
tune=<architecture> tune=
<architecture>
tune=
<architecture>
Parallel Processing    
chunk   1
[no]concurrent [n]conc noconc
[no]directives [n]dr directives=akpv
minconcurrent=<integer> minc minc=1000
[no]parallelio [n]pio nopio
pdefault   safe
psyntax   openmp
scheduling=<list> sched scheduling=e
Fortran Language    
align_common align_common align_common=8
align_struct align_struct align_struct=4
assume=<list> a=<list> a=cel
noassume na  
[no]datasave [n]ds ds
[no]dlines [n]dl ndl
[no]escape [n]escape noescape
[no]freeformat [n]ff nff
integer=<integer> int=<integer> int=4
intlog intlog intlog
kind=<integer> kind=<integer> kind=4
logical=<integer> log=<integer> log=4
[no]onetrip [n]1 noonetrip
real=<integer> rl=<integer> real=4
save=<list> sv=<list> sv=manual_adjust
scan=<integer> scan=<integer> scan=72
syntax=<list> sy=<list> off
[no]type [n]ty nty
Directives    
directives=<list> dr=<list> dr=akpv
nodirectives=<list> ndr  
[no]ignoreoptions [n]ig nig
Inlining and IPA    
inline[=<names>] inl[=<names>] off
noinline[=<names>] ninl[=<names>] off
ipa[=<names>] ipa[=<names>] off
noipa[=<names>] nipa[=<names>] off
inline_and_copy=<names> inlc=<names> off
inline_create=<file> incr=<file> off
ipa_create=<file> ipacr=<file> off
inline_depth=<integer> ind=<integer> ind=2
ipa_depth=<integer> ipad=<integer> ipad=2
inline_from_files=<file>,<file> inff=<file>,<file> current source file
ipa_from_files=<file>,<file> ipaff=<file>,<file> current source file
inline_from_libraries=
<library>,<library>
infl=<library>,
<library>
off
ipa_from_libraries=
<library>,<library>
ipafl=<library>,
<library>
off
inline_looplevel=<integer> inll=<integer> inll=2
ipa_looplevel=<integer> ipall=<integer> ipall=2
inline_manual inm off
ipa_manual ipam off
inline_optimize=<integer>   inline_optimize=0
ipa_optimize=<integer>   ipa_optimize=0
Input-Output    
cmp=<file> cmp=<file> see User Guide
nocmp=<file> ncmp=<file>  
include=<pathname> inc=<pathname> noinc
[n]list[=<file>] [n]l[=<file>] nl
Listing    
cmpoptions[=<list>] cp[=<list>] nocp
lines=<integer> ln=<integer> ln=55
listoptions=<list> lo=<list> lo=o
suppress=<list> su=<list> all message types
Advanced Optimization    
[no]aggressive=<list> [n]ag=<list> nag
arclimit=<integer> arclm=<integer> arclm=5000
cache_prefetch_line_count=
<integer>[,integer]
cplc=<integer> cplc=0
cacheline=<integer, integer> chl=
<integer, integer>
chl=32,32
cachesize=<integer, integer> chs=
<integer, integer>
chs=8,0
dpregisters=<integer> dpr=<integer> dpr=32
each_invariant_if_growth=
<integer>
eiifg=<integer> eiifg=20
fpregisters=<integer> fpr=<integer> fpr=32
[no]fuse fuse nofuse
fuselevel=<integer> fuselevel=<integer> fuselevel=0
generateh genh see User Guide
heaplimit=<integer> heap=<integer> heaplimit=100
hdir=<directory_name> hd=<directory_name> hd=current directory
hoist_loop_invariants=
<integer>
hli=<integer> hli=1
library_calls=<name> lc=<name> off
limit=<integer> lm=<integer> lm=20000
machine=<list> [no]ma=<list> ma=s
max_invariant_if_growth=
<integer>
miifg=<integer> miifg=500
routine=<routine_name>
/<limited qualifiers>
rt=<routine_name>
/<limited qualifiers>
off
setassociativity=
<integer>,<integer>
sasc=
<integer, integer>
sasc=1,1
[no]srlcd srlcd nosrlcd
unroll=<integer> ur=<integer> ur=4
unroll2=<integer> ur2=<integer> ur2=160
unroll3=<integer> ur3=<integer> ur3=1
useh useh see User Guide

Table 3 Ranges
Value Meaning
assume  
a c*$* assert argument aliasing
b c*$* assert bounds violations
c c*$* assert temporaries for constant arguments
e c*$* assert equivalence hazard
l c*$* assert last value needed
directives  
a KAP assertions
k KAP c*$* directives
p parallel directives
v VAST cvd$ directives
listoptions  
c Calling tree at end of program listing
k KAP options used, printed at end of each program unit
l Loop-by-loop optimization table
n Names of program unit
o Original program listing
p Performance statistics compilation
s Summary of optimizations performed
t Transformed program listing
machine  
n Prefer non-stride-1 array access
o Directs KAP to parallelize only outer loops
s Prefer optimization of DO loop stride-1 references
optimize  
0 No optimization performed
1 Only simple analysis and optimization performed
Induction variables recognized
DO loop interchanging techniques applied
2 Lifetime analysis performed
More powerful data dependence tests used
3 More loop interchanging performed
Special case data dependence tests performed
Wraparound variables recognized
4 Loop interchanging around reductions
More exact data dependence tests performed
5 Array expansion enabled
other  
Limit >0
Arclimit >0
Library_calls BLAS
roundoff  
0 No roundoff-changing transformations
1 Expression simplification and code floating enabled
Arithmetic reductions recognized
Loop interchanging around arithmetic reductions allowed if -optimize is greater than 4
Loop rerolling allowed when -scalaropt is greater than 1
2 Reciprocal substitution performed to move an expensive division outside of loop
3 Recognize real induction variables if -scalaropt is greater than 2 or -optimize is greater than 1
Memory management enabled if -scalaropt=3
Expressions such as A / B / C can be rotated to A / (B*C)
scalaropt  
0 No scalar optimizations performed
1 IF loops changed into DO loops
Simple code floating out of loops performed
Inaccessible or unused code is removed
Forward substitution of variables performed
Dusty deck IF transformations enabled
2 Full range of scalar optimizations enabled
Floating invariant IFs out of loops
Induction variable recognition
Loop rerolling if -roundoff is greater than 1
Loop peeling, loop fusion, loop unrolling
3 Memory management performed if -roundoff=3
Additional dead-code elimination performed during output conversion
suppress  
d Disables data dependence messages
e Disables syntax error messages
i Disables informational messages
n Disables not optimized messages
q Disables questions
s Disables standardized messages
w Disables syntax warning messages
syntax  
a Strict compliance with ANSI Fortran
v Accepts DEC Fortran source files
f90 Strict compliance with ANSI Fortran 95 standard
unroll --- enabled only with -scalaropt=2
-unroll=<#it> and -unroll2=<weight> and -unroll3=<weight>
  where:

<#it> is the maximum number of iterations to unroll.

  • =0 use default values to unroll
  • =1 no unrolling

<weight> is the maximum (-unroll2) or minimum (-unroll3) weight, estimate of work, in an unrolled loop. Work is estimated by counting operands and operators in a loop.

Table 4 KAP Assertions and Directives
KAP Assertion Duration
c*$* assert [no]argument aliasing Until reset
c*$* assert [no]bounds violations Until reset
c*$* assert [no]equivalence hazard Until reset
c*$* assert [no]last value needed Until reset
c*$* assert permutation (name) Next loop
c*$* assert no recurrence (<names>) Next loop
c*$* assert relation
(name .xx. variable/constant)
Next loop
c*$* assert no sync Next loop
c*$* assert [no]temporaries for
constant arguments
Until reset
Parallel Processing (Automatic):  
c*$* assert concurrent call End of loop
c*$* assert do (concurrent) End of loop
c*$* assert do (serial) End of loop
c*$* assert do prefer (concurrent) End of loop
c*$* assert do prefer (serial) End of loop
KAP Directive Range of Values
Optimization:  
c*$* arclimit (n) 0--5000
c*$* each_invariant_if_growth (n) 0--20
c*$* limit (n) >0
c*$* max_invariant_if_growth (n) 0--500
c*$* optimize (n) 0--5
c*$* roundoff (n) 0--3
c*$* scalar optimize (n) 0--3
c*$* unroll (n1[,n2])
n1 for unroll, n2 for unroll2
n1,n2>0
Parallel Processing (Automatic):  
c*$* [no]concurrentize 0--5
c*$* minconcurrent 0--999999
Inlining and Interprocedural Analysis:  
c*$*[no]inline [scope] [(name)] On/off
c*$*[no]ipa [scope] [(name)] On/off
Memory Management:  
c*$* padding (name) (var-list)
c*$* storage order (names) (var-list)
Assertions:  
c*$*[no]assertions On/off


Next