Previous | Contents | Index |
Specifying the -synchronous_exceptions option associates an exception with the instruction that causes it, resulting in precise exception reporting. Specifying -synchronous_exceptions slows program execution, so only specify it when debugging a specific problem, such as locating the source of an exception.
If you omit the
-synchronous_exceptions
option and
-fpe0
is in effect, exceptions can be reported one or more instructions
after the instruction that caused the exception. If you specify
-fpe1
,
-fpe2
,
-fpe3
, or
-fpe4
, exceptions are reported precisely (same as specifying
-synchronous_exceptions
).
3.73 -syntax_only --- Do Not Create Object File
Specifying the
-syntax_only
option allows you to do a quick syntax check of your source file
without creating an object file. Some error checking is bypassed (for
example, checking for uninitialized variables,
-warn nouninitialized
), and no code is generated.
3.74 -threads --- Link Using Threaded Run-Time Library
Use the
-threads
option to request that the linker use threaded libraries. This is
usually used with the
-reentrancy threaded
option (see Section 3.67). The
-pthread
option is a synonym for
-threads
.
3.75 -transform_loops --- Activate Loop Transformation Optimizations
Specifying -transform_loops (or -o5 ) activates a group of loop transformation optimizations that apply to array references within loops. These optimizations can improve the performance of the memory system and usually apply to multiple nested loops. The loops chosen for loop transformation optimizations are always counted loops (which include DO or IF loops, but not uncounted DO WHILE loops).
Conditions that typically prevent the loop transformation optimizations from occurring include subprogram references that are not inlined (such as an external function call), complicated exit conditions, and uncounted loops.
The types of optimizations associated with -transform_loops include the following:
The loop transformation optimizations are a subset of optimizations activated by -o5 . Instead of specifying both -pipeline and -transform_loops , you can specify -o5 .
To specify loop transformation optimizations without software pipelining, do one of the following:
To determine whether using -transform_loops benefits your particular program, you should time program execution for the same program (or subprogram) compiled with and without loop transformation optimizations (such as with -transform_loops and -notransform_loops ).
For More Information:
Use the -tune keyword option to specify the types of processor-specific instruction tuning for implementations of the Alpha architecture.
Regardless of the setting of -tune keyword option you use, the generated code runs correctly on all implementations of the Alpha architecture. Tuning for a specific implementation can improve run-time performance; it is also possible that code tuned for a specific Alpha processor may run slower on another Alpha processor.
If you omit -tune keyword , -tune generic is used.
-tune generic
Generates and schedules code that will execute well for all implementations of the Alpha architecture. This provides generally efficient code for those cases where different processor generations are likely to be used. This is the default.-tune host
Generates and schedules code optimized for the implementation of the Alpha architecture in use on the system being used for compilation.-tune ev4
Generates and schedules code optimized for the 21064, 21064A, 21066, and 21068 implementations of the Alpha architecture.-tune ev5
Generates and schedules code optimized for the 21164 implementation of the Alpha chip. This implementation of the Alpha architecture is faster and more recent than the implementations of the Alpha architecture associated with -tune ev4 (21064, 21064A, 21066, and 21068).-tune ev56
Generates and schedules code optimized for some 21164 Alpha architecture implementations that use the byte and word manipulation instruction extensions of the Alpha architecture.-tune pca56
Generates and schedules code optimized for the 21164PC Alpha architecture implementation that uses the byte and word manipulation instruction extensions and multimedia instruction extensions.
For More Information:
On improving and measuring run-time performance, see Chapter 5.
3.77 -Uname --- Undefine Preprocessor Symbol Name
Specifying
-uname
removes the definition of name, such as a predefined symbol.
Predefined preprocssor symbols are defined in Section 3.24.
3.78 -unroll num --- Specify Number for Loop Unroll Optimization
Use -unroll num to specify the number of times (a number num) a loop can be unrolled. Specify this option only with -o3 or higher optimization levels, at which loop unrolling occurs.
If you omit -unroll num or specify -unroll 0 , the optimizer determines how many times loops are unrolled. Usually loops are unrolled four times, but code analysis may result in certain loops being unrolled twice (two times).
Specify the num value as an integer between 0 and 16. If count is between 1 and 16, it specifies the number of times loops are unrolled, instead of letting the optimizer determine how many times loops are unrolled.
For More Information:
Specifying the -v option creates a listing of the DIGITAL Fortran 90 source file with various compile-time information appended. The source listing is written to a listing file with a .l file suffix. When a diagnostic message is displayed, the listing file contains an error message with a column pointer (such as .....1) that points to the specific part of the source line that caused the error.
If you expect your program to get compilation errors, request a separate listing file ( -v option) or use the error command to insert the error messages into the appropriate place in your source program.
Using a listing file provides slightly more information and includes the column pointer (1) that indicates the exact part of the line that caused the error. Especially for large files, consider obtaining a printed copy of the listing file you can reference while editing the source file.
If you request a listing file by specifying the -v option without other options (such as -show code ), the listing file will not show the code of included source files or machine code and will not include a cross-reference table.
If a source line of length 1 contains a form-feed character, the source code listing begins a new page with the following line; the line containing the form-feed does not appear.
If a source line of length greater than 1 contains a form-feed character, that line is printed but the form-feed character is ignored (does not generate a new page).
Any other nonprinting ASCII characters encountered in DIGITAL Fortran 90 source files are replaced by a space character, and a warning message appears.
The name of the listing file is the same as for the source file, with the .l substituted for the .f90 , .f , .for , or .for .
If you specify multiple source files without the -c option, a single listing file is created.
If you specify multiple source files with the -c option (and -v option), multiple listing files are created.
For More Information:
Specifying the
-v
option displays the preprocessor (if requested), compiler, and linker
passes as they execute, including final resource usage in the C shell
time
command format. The DIGITAL Fortran 90 compiler is
decfort90
, the C compiler is
cc
, the linker is
ld
, and so forth.
3.81 -version --- Show DIGITAL Fortran 90 Version Information
Specifying the
-version
option displays the version information of the DIGITAL Fortran 90
product in use. You can use this option alone on the
f90
command line.
3.82 -vms --- OpenVMS Fortran Compatibility
Specifying the -vms option controls VMS-related run-time defaults, including alignment, deleted records in relative files, OPEN statement BLANK specifier, ENDFILE records, reading deleted records and ENDFILE, and implicit and explicit OPEN. It causes the run-time system to provide functions like VAX FORTRAN (on OpenVMS operating systems) in the following ways:
For More Information:
The -wl,-xxx option allows you to pass an option directly to the ld linker, where -xxx is the option to be passed to ld .
For example, to set the linker -taso option to help port 32-bit programs that assume addresses can be stored into 32-bit variables, specify:
-W1,-taso |
If the ld option -xxx takes an argument yyy, include yyy after the option separated by a comma. For example:
-W1,-xxx,yyy |
For More Information:
On linker options, see ld(1).
3.84 -warn keyword, -u, -nowarn, -w, -w1 --- Warning Messages and Compiler Checking
You can prevent the display of some or all warning messages and request that additional compile-time checking be performed (can issue additional warning messages):
If you specify -syntax_only , some warning options are ignored (see Section 3.73).
The following options apply:
-warn noalignments
Specifying -warn noalignments suppresses warning messages for data that is not naturally aligned during compilation. To control alignment of common blocks, derived-type structures, and record structures, specify the -align keyword options.-warn argument_checking
Specifying -warn argument_checking requests that the compiler issue a warning message about argument mismatches between the calling procedure and the called procedure when both program units are compiled together. Specifying -warn argument_checking applies to calls with an implicit interface (such as routines declared as EXTERNAL).When an explicit interface is present between calling and called procedures, warning messages about argument mismatches are reported whether or not you specify -warn argument_checking .
-warn declarations or -u
Specifying -warn declarations or -u requests that the compiler issue a warning message for any undeclared symbols. This makes the default type of a variable undefined (IMPLICIT NONE) rather than using the default Fortran rules.-warn nogranularity
Specifying -warn nogranularity suppresses the NONGRNACC warning message, Unable to generate code for requested granularity. The default is -warn granularity .-warn truncated_source
Specifying -warn truncated_source requests that the compiler issue a warning diagnostic message. The compiler issues the warning when it reads a source line with a statement field that exceeds the maximum column width in fixed-format source files. The maximum column width for fixed-format files is column 72 or 132, depending whether the -extend_source option was specified.This option has no effect on truncation; lines that exceed the maximum column width are always truncated.
This option does not apply to free-format source files. The default is -warn notruncated_source .
-warn nouninitialized
Specifying -warn nouninitialized suppresses warning messages for a variable used before a value could be assigned to it.-nowarn, -w, or -warn nogeneral
Specifying -nowarn , -w , or -warn nogeneral suppresses all warning messages.-warn nouncalled
Specifying -warn nouncalled suppresses warning messages when a statement function is never called.The default is -warn uncalled .
-warn unused
Specifying -warn unused requests warning messages for a variable that is declared but never used.The default is -warn nounused .
-warn nousage
Specifying -warn nousage suppresses warning messages about questionable programming practices, and the use of intrinsic functions that use only two digits to represent the year 2000. The compiler allows such practices, although they are often an artifact of programming errors.For example, consider a continued character constant or a Hollerith literal whose first part ends before the statement field ends and that appears to end with trailing spaces. Such situations are detected and reported by the compiler when you do not disable the warning.
The default is -warn usage .
Previous | Next | Contents | Index |