XL Fortran Version 9.1 provides the following new and changed
features:
New or changed compiler options and suboptions:
- The -qcr option allows you to control how the
compiler interprets the CR (carriage return) character.
- The -qflttrap=nanq suboption detects all
NaN values handled or generated by floating point instructions, including
those not created by invalid operations.
- The -qport=nullarg suboption treats an
empty argument, which is delimited by a left parenthesis and a comma, two
commas, or a comma and a right parenthesis, as a null argument.
- The -qmodule=mangle81 option provides
compatibility with Version 8.1 module naming conventions for
non-intrinsic modules.
- The -qsaveopt option saves the command-line
options used for compiling a source file in the corresponding object
file.
- The -qversion option provides the
version and release for the invoking compiler.
- The -qhot=vector suboption converts certain
operations that are performed in a loop on successive elements of an array
into calls to vector library routines.
The following XL Fortran enhancements adapted from the Fortran 2003
draft standard:
- The 2003std run-time option
provides conformance checking of code for adherence to the draft
standard.
- The ISO_C_BINDING
intrinsic module, BIND attribute and
statement, module variables, common block, subroutine/function and -qalign=bindc compiler suboption provide support for
interoperability with C.
- PUBLIC/PRIVATE attribute on derived type
components.
- The ASSOCIATE construct
associates an entity with either a variable or the value of an
expression.
- Command-line argument intrinsics:
- The FLUSH statement makes data
from an external file available to other processes.
- The IOMSG= specifier on the data-transfer operation,
file-positioning, FLUSH, and file inquiry statements.
- The ISO_FORTRAN_ENV intrinsic
module provides public entities relating to the Fortran environment.
- The NEW_LINE intrinsic returns a
new line character.
- The IMPORT statement makes
named entities from the host scoping unit accessible in the interface body by
host association.
- The PROCEDURE statement declares
a dummy procedure or external procedure.
The following performance-related directives and compiler
options/suboptions have been added:
- -qarch and -qtune
compiler suboptions that provide support for POWER5 and PowerPC 970
architectures (ppc64gr, ppc64grsq, pwr5, and ppc970).
- The -qenablevmx option instructs the
compiler to generate Vector Multimedia eXtension, orVMX, instructions for
those PowerPC 970 processors capable of handling them.
- The -qhot=simd suboption automatically SIMD
vectorizes loops, using Altivec instructions.
- The -qshowpdf option, used together with
-qpdf1, provides additional call and block count profiling
information to an executable.
- Optimization utilities showpdf and mergepdf provide enhanced information about PDF-directed compilation
- The -qdirectstorage option informs
the compiler that a given compilation unit may reference write-through-enabled
or cache-inhibited storage.
- Directives NOVECTOR, NOSIMD, and the ALIGNX built-in subroutine provide
fine-grain control of the auto-vectorization and auto-SIMD vectorization
features in the compiler.
- The LOOPID directive marks a loop
with a scope-unique identifier. The identifier can be used by the BLOCK_LOOP and other directives to
control loop-specific transformations. Information on the loop
transformations can be shown in using the -qreport compiler of option .
- The EIEIO directive helps in with
cache and memory management.
- The PROTECTED STREAM directives
allow for management of protected streams so they are not replaced by any
hardware-detected streams.
- The SWDIV and SWDIV_NOCHK intrinsics provide
software floating-point division algorithms.
Other features:
- The FRE and FRSQRTES PowerPC floating-point intrinsic
functions.
- The POPCNT, and POPCNTB intrinsics provide set bit counts
in registers for data objects, and the POPPAR intrinsic determines the parity for a
data object.
- 32-bit and 64-bit modules are now included in one file.
- Allowing multiple include paths
- Availability of the MASS vector libraries for use with vectorized
applications.
- A man page is provided for the compiler invocation commands and for each
command-line utility. The man page for compiler invocations replaces
the help file, which was provided in previous versions.
