Order Number: AV--PXEHJ--TE
This document lists Compaq KAP C/OpenMP for Tru64 UNIX command-line switches.
For more information about these switches, see the Compaq KAP C/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.1
Compaq C Version 6.1
Compaq Computer Corporation
Houston, Texas
© 1993 Compaq Computer Corporation
© 1993 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.
Long Name | Short Name | Default Value |
---|---|---|
cc=<C_compiler_path> | cc=/usr/bin/cc | |
cext=<C file extension> | cext=c | |
ckap=<path to kapc> | ckap=/usr/bin/kapc | |
ckapargs=<kap_switch_string> | ||
cpp=<cpp_path> | cpp=/usr/bin/cc | |
sif=<cpp, kap>,-S | off | |
tmpdir=<temporary_directory_path_string> | tmpdir=/tmp/ | |
tune=<architecture> | tune=current system architecture | |
verbose | v | nov |
Long Name | Short Name | Default Value |
---|---|---|
General Optimization | ||
[no]interchange | interchange | interchange |
[no]namepartitioning=
<integer>,<integer> |
[n]namepart=
<integer>, <integer> |
off |
optimize | o | o=5 |
[no]recursion | [n]rc | off |
roundoff | r | roundoff=3 |
scalaropt=<integer> | so=<integer> | so=3 |
[no]skip | [n]sk | off |
tune=<architecture> |
tune=
<architecture> |
tune=
<architecture> |
Parallel Processing | ||
[no]concurrentize | [n]conc | noconc |
minconcurrent=<integer> | mc | mc=1000 |
Inlining and IPA | ||
inline[=<names>] | inl[=<names>] | off |
noinline[=<names>] | ninl[=<names>] | |
ipa[=<names>] | ipa[=<names>] | off |
noipa[=<names>] | nipa[=<names>] | |
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> | ind=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 | ncmp | |
list[=<file>] | l[=<file>] | nl |
nolist | nl | |
Listing | ||
cmpoptions[=<list>] | cp[=<list>] | ncp |
nocmpoptions | ncp | |
lines=<integer> | ln=<integer> | ln=55 |
listingwidth=<integer> | lw=<integer> | lw=132 |
listoptions=<list> | lo=<list> | see User Guide |
Language Qualifiers | ||
[no]natural | [n]nat | nat |
signed | signed | signed |
Advanced Optimization | ||
addressresolution=<integer> | arl=<integer> | arl=1 |
[no]arclimit=<integer> | [n]arclm=<integer> | arclm=5000 |
cacheline=<integer> | chl=<integer> | chl=32,32 |
cache_prefetch_line_count=
<integer>[,<integer>] |
cplc=<integer> | cplc=0 |
cachesize=<integer> | chs=<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=<integer> | [n]fuse | nofuse |
fuselevel=<integer> | fuselevel=<integer> | fuselevel=0 |
heaplimit=<integer> | heap=<integer> | heaplimit=100 |
limit=<integer> | lm=<integer> | lm=50 |
[no]machine=<list> | [n]ma | ma=S |
max_invariant_if_growth=
<integer> |
miifg=<integer> | miifg=500 |
routine=<routine_name>
/<limited qualifiers> |
rt=<routine_name>
/<limited qualifiers> |
off |
setassociativity=<integer> | sasc=<integer> | sasc=1,1 |
stdio | stdio | off |
syntax=<list> | sy=<list> | sy=d |
unroll=<integer> | ur=<integer> | ur=4 |
unroll2=<integer> | ur2=<integer> | ur2=160 |
unroll3=<integer> | ur3=<integer> | ur3=1 |
Value | Meaning |
---|---|
addressresolution | |
0 | KAP C makes no assumptions about data aliasing |
1 | A pointer will not contain its own address |
2 |
No objects represented by function parameters overlap in memory
KAP C assumes parameter aliasing Equivalent to #pragma_KAP distinct for all parameters |
3 | Globals, function parameters, and locals form distinct groups |
4 | No aliases for objects |
listoptions | |
c | Calling tree at end of program listing |
k | KAP C switches used, printed at end of each program unit |
l | Loop-by-loop optimization table |
n | Names of program unit |
p | Compilation performance statistics |
s | Summary of loop optimizations performed |
machine | |
n | Prefer nonstride-1 array access |
o | Directs KAP to parallelize only outer loops |
s | Prefer optimization of for loop stride-1 references |
other | |
Limit | >0 |
Arclimit | >0 |
optimize | |
0 |
No optimization performed
Simple program analysis performed |
1 |
Simple loop optimization performed
Loops distributed to optimize only part of loop |
2 |
Loops in a loop nest optimized
Lifetime analysis performed More powerful data dependence tests performed |
3 |
Special techniques used to break data dependence cycles
Triangular loops recognized Loop interchanging performed to improve memory referencing Special case data dependence tests used |
4 |
Two versions of a loop generated to break data dependence arc when
necessary
Exact data dependence tests performed Wraparound variables recognized |
5 | Array expansion and loop fusion enabled |
roundoff | |
0 | No roundoff-changing transformations |
1 |
Loop interchanging around serial reductions allowed if -optimize is
equal to or greater
than 4 Simplification of expressions from forward substitution or inside trigonometric intrinsic functions returning integer values is performed Code floating enabled if -scalaropt is equal to or greater than 2 Loop rerolling enabled if -scalaropt is equal to or greater than 2 |
2 | Reciprocal substitution performed to move an expensive division outside of loop |
3 |
Floating point induction variables recognized
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 |
Only simple scalar optimizations performed
Dead-code elimination Global forward substitution Dusty deck IF transformations enabled |
2 |
Full range of scalar optimizations performed
Floating invariant IFs out of loops Induction variable recognition Loop rerolling if -roundoff is equal to or greater than 1 Loop peeling, loop fusion, loop unrolling |
3 | Memory management enabled if -roundoff=3 |
syntax | |
a | Strict compliance with ANSI C |
d | Accepts Compaq C |
k | Accepts Kernighan & Ritchie C |
unroll --- enabled only with -scalaropt=2 | |
-unroll=<#it> and -unroll2=<weight> and -unroll3=<weight> | |
where:
<#it> is the maximum number of iterations to unroll.
<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. |
KAP Assertion | Duration |
---|---|
#pragma _KAP arl=<integer> | Selectable |
#pragma _KAP distinct (name, name) | Selectable |
#pragma _KAP no side effects (name) | Program unit |
Parallel Processing: | |
#pragma _KAP concurrent | Selectable |
#pragma _KAP concurrent call | Selectable |
#pragma _KAP concurrent ignore call | Selectable |
#pragma _KAP serial | Selectable |
KAP Directive | Range of Values |
Inlining and Interprocedural Analysis: | |
#pragma _KAP inline [here]
[routine] [global] [(name[,name..])] |
Selectable |
#pragma _KAP ipa [here]
[routine] [global] [(name[,name..])] |
Selectable |
Memory Management: | |
#pragma_KAP padding (var_list) | Program unit |
#pragma_KAP storage order (var_list) | Program unit |
Parallel Processing: | |
#pragma _KAP minconcurrent (<integer>) | Program unit |