
Exemplar C and Fortran 77 Programmer's Guide
Migrating to the Exemplar compilers
[ Previous Page ] [ Next Page ] [ Contents ]
This chapter provides transition information for users moving from the SPP1000-Series compilers (/usr/convex/bin/cc, /usr/convex/bin/fc) to the Exemplar compilers, which are based on the standard HP compilers. Options, directives, and pragmas available in the SPP1000-Series compilers are mapped to the equivalent features in the Exemplar compilers. In addition, this chapter lists the language extensions from the SPP1000-Series compilers that the Exemplar compilers support. Finally, this chapter covers changes in accessing CPSlib.
This section lists the compiler options from the SPP1000-Series compilers that are supported by the Exemplar compilers or are unimplemented.
In Table 7, the compiler options in the left column were available in the SPP1000-Series compilers (/usr/convex/bin/cc, /usr/convex/bin/fc). The middle column lists corresponding or similar options in the Exemplar compilers or states that the option is unimplemented. The right column points to additional information on the Exemplar compiler options.
NOTE: Functionality may differ between corresponding options.
The following table does not list options (such as -o and -c) that
are common across a number of compilers.
SPP1000-Series |
Exemplar compiler option |
For more information, see |
|---|---|---|
|
Default |
|
-a1 |
unimplemented option |
|
-alias |
unimplemented option |
|
-alias |
+Onoparmsoverlap |
cc(1) man page |
-alia |
unimplemented option |
|
-alias |
+Optrs_to_globals |
cc(1) man page |
-alias |
unimplemented option |
|
-alias |
+Onoptrs_to_globals |
cc(1) man page |
-alias |
unimplemented option |
|
-alias |
unimplemented option |
|
-alias |
+Optrs_strongly_typed |
cc(1) man page |
-alias |
+Onoptrs_ansi |
cc(1) man page |
-align cache |
unimplemented option |
|
-align cache_check |
unimplemented option |
|
-align cseries |
unimplemented option |
|
-align cti |
unimplemented option |
|
-align spp |
|
f77(1) man page |
|
|
f77(1) man page |
|
unimplemented option |
|
|
unimplemented option |
|
|
unimplemented option |
|
|
unimplemented option |
|
|
Cray Fortran extensions are enabled by default |
HP FORTRAN/9000 Programmer's Reference |
|
similar to |
cc(1) man page, |
|
|
f77(1) man page |
-ctifiles |
unimplemented option |
|
|
|
Chapter 2, |
|
|
Chapter 2, |
|
unimplemented option |
|
-cxpalib |
unimplemented option |
|
-cxpamon |
unimplemented option |
|
|
|
Chapter 2, |
|
unimplemented option |
|
|
|
f77(1) man page |
-ds |
+Odynsel |
Chapter 2, |
|
unimplemented option |
|
|
similar to |
cc(1) man page |
|
unimplemented option |
|
|
Default |
|
|
|
f77(1) man page |
-fd |
see + |
cc(1) man page |
-fl |
+Oloop_transform |
Chapter 1, |
-float dp_const |
unimplemented option |
|
-float sp_const |
see + |
cc(1) man page |
-float dp_ops |
unimplemented option |
|
-float sp_ops |
see + |
cc(1) man page |
-gs |
|
Chapter 2, |
-i1 |
unimplemented option |
|
-i2 |
-I2 |
f77(1) man page |
-i4 |
-I4 |
f77(1) man page |
-i8 |
Chapter 2, |
|
-il |
unimplemented option |
|
|
+O4 |
Chapter 1, |
|
unimplemented option |
|
-LST |
-L |
f77(1) man page |
-LSTI |
unimplemented option |
|
-mo |
similar to |
cc(1) man page, |
-mrl |
similar to |
cc(1) man page, |
-na |
unimplemented option |
|
-nbr |
unimplemented option |
|
-nds |
+Onodynsel |
Chapter 2, |
-nfl |
+Onoloop_transform |
cc(1) man page, |
-nga |
unimplemented option |
|
-ngr |
unimplemented option |
|
|
|
Chapter 2, |
-nmo |
similar to |
cc(1) man page, |
|
|
Chapter 1, |
|
|
Chapter 2, |
|
unimplemented option |
|
-nof90 |
unimplemented option |
|
-nonodepar |
Default (Use |
Chapter 2, |
-nopeel |
unimplemented option |
|
-noptst |
unimplemented option |
|
-nore |
unimplemented option |
|
-nosc |
unimplemented option |
|
-noU77 |
Default (Use |
f77(1) man page |
-nptr |
unimplemented option |
|
-nsr |
unimplemented option |
|
-nuj |
unimplemented option |
|
-nur |
|
Chapter 1, |
|
Default is no report |
|
|
|
cc(1) man page, |
|
-O (same as +02) |
Chapter 1, |
-O0 |
unimplemented option |
|
-O1 |
similar to |
Chapter 1, |
|
similar to |
Chapter 1, |
|
similar to |
Chapter 2, |
|
|
Chapter 2, |
-p |
|
|
-p8 |
|
HP FORTRAN/9000 Programmer's Reference |
-parens explicit |
unimplemented option |
|
-parens ignore |
unimplemented option |
|
-parens implicit |
unimplemented option |
|
-pcc |
-Ac |
cc(1) man page |
-pd8 |
similar to |
HP FORTRAN/9000
Programmer's Reference, and |
-peel |
unimplemented option |
|
-peelall |
unimplemented option |
|
-pg |
|
|
|
|
HP FORTRAN/9000 Programmer's Reference |
|
|
f77(1) man page |
-ptst |
unimplemented option |
|
-ptstall |
unimplemented option |
|
|
unimplemented option |
|
-r4 |
-R4 |
f77(1) man page |
-r8 |
-R8 |
f77(1) man page |
-re |
unimplemented option |
|
-sc |
unimplemented option |
|
-sfc |
Sun Fortran extensions are enabled by default |
HP FORTRAN/9000 Programmer's Reference |
-sr |
unimplemented option |
|
|
|
cc(1) man page |
-string read_only |
|
cc(1) man page |
-string write_only |
Default |
|
|
|
Chapter 2, |
-tri off |
unimplemented option |
|
-tri on |
Default |
|
-uj |
unimplemented option |
|
-ujn n |
unimplemented option |
|
-uo |
unimplemented option |
|
-ur |
|
Chapter 1, |
-urn n |
|
Chapter 1, |
-vfc |
VAX Fortran extensions are enabled by default |
HP FORTRAN/9000 Programmer's Reference |
-vn |
Use the |
what(1) man page |
|
|
f77(1) man page |
-xra |
unimplemented option |
This section lists the directives and pragmas from the SPP1000-Series compilers (/usr/convex/bin/cc and /usr/convex/bin/fc) that are supported by the Exemplar compilers or are unimplemented.
The forms of the directives and pragmas in the SPP1000-Series compilers are accepted by the Exemplar compilers.
The form of an SPP1000-Series Fortran compiler directive is:
C$DIR [CSERIES|SPP] directive-specification
The form of an SPP1000-Series C pragma is:
#pragma _CNX [CSERIES|SPP] directive-specification
If CSERIES is specified, the directive is discarded by the compiler.
See the section "Exemplar compiler directives and pragmas" on
page 23 for information on the recommended forms for the
Exemplar compilers.
Table 8 lists the compiler directives and pragmas and states whether they exist in the Exemplar compilers. Words in italics indicate user-supplied information. For the directives and pragmas that are implemented, descriptions are given in Chapter 2. However, for more information on using the directives and pragmas, see the Exemplar Programming Guide.
Directive/pragma |
Status |
|---|---|
|
Implemented* |
|
Implemented* |
|
Implemented* |
block_shared(allocatable_array_namelist) |
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
no_fuse |
Unimplemented directive/pragma |
|
Implemented* |
|
Implemented* |
|
Unimplemented directive/pragma |
|
Unimplemented directive/pragma |
|
Implemented* |
no_unroll |
Unimplemented directive/pragma |
|
Unimplemented directive/pragma |
|
Implemented* |
opt_level |
Similar to |
|
Implemented* |
|
Unimplemented directive/pragma |
|
Unimplemented directive/pragma |
prefer_fuse |
Unimplemented directive/pragma |
|
Implemented* |
promote_test |
Unimplemented directive/pragma |
|
Unimplemented directive/pragma |
|
Unimplemented directive/pragma |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Implemented* |
|
Unimplemented directive/pragma |
|
Unimplemented directive/pragma |
opt_level pragma and the OPTIMIZE directive, see the Exemplar Programming Guide.This section lists the Fortran 77 language extensions from the SPP1000-Series Fortran compiler (/usr/convex/bin/fc) that are supported by the Exemplar Fortran compiler or are unimplemented.
Table 9 lists the extensions that are supported in the Exemplar Fortran 77 compiler. Because some of these extensions are available in the standard HP Fortran compiler, the functionality and syntax may differ slightly from the SPP1000-Series Fortran compiler. Unless noted otherwise, see the HP FORTRAN/9000 Programmer's Reference for information on using these extensions.
Extension |
Status |
|---|---|
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
This statement is implemented but has a different syntax. /usr/convex/bin/fc required parentheses: f77 does not allow parentheses: |
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Unimplemented extension |
|
Unimplemented extension |
|
Implemented |
|
Implemented |
|
Implemented |
|
Unimplemented extension |
|
Implemented |
|
Unimplemented extension |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Unimplemented extension |
|
Implemented |
|
Implemented |
|
Unimplemented extension |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Unimplemented extension |
|
Implemented |
|
Implemented |
|
Unimplemented extension |
|
Unimplemented extension |
|
Implemented |
|
Implemented |
|
Implemented |
|
Unimplemented extension |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
|
Unimplemented extension |
|
Unimplemented extension |
|
Implemented |
|
Implemented |
|
Implemented |
|
Implemented |
Binary data file format conversions |
Unimplemented extension |
Extended-range |
Implemented |
Fortran 90 array notation |
Implemented |
Hex constants |
Implemented |
Hollerith constants |
Implemented |
Integers in logical expressions |
Unimplemented extension |
List-directed sequential internal I/O |
Implemented |
Namelist-directed sequential external I/O |
Implemented |
Octal constants |
Implemented |
User-defined conversions |
Unimplemented extension |
|
Unimplemented extension |
In the SPP1000-Series compilers (/usr/convex/bin/cc,
/usr/convex/bin/fc), node-level parallelism (which is indicated
using directives or pragmas) is enabled by default. However, in
the Exemplar compilers, loop, task, and region node-parallelism is
disabled by default. In other words, +Ononodepar is the default.
The +Ononodepar option causes the compiler to generate code
for a single-node machine. When this option is used, serial code is
generated for node-parallel constructs; thus, node-parallelism is
not implemented. Thread-parallelism--both automatic and
directive-specified--is still implemented.
Use the +Onodepar option to enable directive-specified
node-parallelism when compiling with +Oparallel at +O3
or +O4.
The +O[no]nodepar option is only meaningful when specified
with the +Oparallel option at +O3 or +O4. See the section
"+O[no]nodepar" on page 19 for more information.
CPSlib is the Compiler Parallel Support library--a library of
low-level parallelization and synchronization routines. In the
SPP1000-Series compilers (/usr/convex/bin/cc,
/usr/convex/bin/fc), CPSlib is automatically linked in at every
optimization level. However, in the Exemplar compilers, CPSlib is
automatically linked in only at +O3 (and above) when
+Oparallel is specified.
If your program explicitly calls CPSlib routines or calls other
libraries that use CPS routines and you are not linking at +O3 (or
+O4) with +Oparallel, you must explicitly link in CPSlib as
shown in the following example.
Assume prog.c contains calls to CPSlib routines:
% cc -lpthread -lcps -lpthread -lail prog.c
Linking in CPSlib requires specifying--in the order given--all of
the string -lpthread -lcps -lpthread -lail.
See the Exemplar Programming Guide for more information on CPSlib routines.