Many new features and enhancements fall into the category of optimization and performance tuning.
The -qarch compiler option controls the particular instructions that are generated for the specified machine architecture. The -qtune compiler option adjusts the instructions, scheduling, and other optimizations to enhance performance on the specified hardware. These options work together to generate application code that gives the best performance for the specified architecture.
XL Fortran V10.1 augments the list of suboptions available to the -qarch compiler option to support processors that support the VMX instruction set and the newly-available POWER5+ processors. The following new -qarch options are available:
- -qarch=ppc64v
- -qarch=pwr5x
XL Fortran includes highly-tuned mathematical functions that can greatly improve the performance of mathematically-intensive applications. These functions are provided through the following high-performance libraries:
For more information about using the MASS libraries, see Using the Mathematical Acceleration Subsystem.
For more information about using the BLAS functions, see Using the Basic Linear Algebra Subprograms.
The entries in the following table describes new or changed compiler options and directives not already mentioned in the sections above.
Information presented here is just a brief overview. For more information about these compiler options, refer to Options for performance optimization.
Option/directive | Description |
---|---|
-qfloat | -qfloat adds the following
new suboptions:
|
-qipa | -qipa adds the following
new suboptions:
|
-O | Specifying the -O3 compiler
option now instructs the compiler to also assume the -qhot=level=0 compiler option setting.
Specifying the -O4 or -O5 compiler option now instructs the compiler to also assume the -qhot=level=1 compiler option setting. |
-qsmallstack | The -qsmallstack compiler
option adds the following new suboptions to control dynamic length variable
allocation transformations:
|
-qstacktemp | The -qstacktemp compiler
option is new, and gives you the ability to control where certain compiler
temporaries are stored. Available suboptions are:
|
The following table lists intrinsic procedures that are new for this release. For more information on intrinsic procedures provided by XL Fortran, see Intrinsic procedures.
Function | Description |
---|---|
FRIM(val); | Takes an input val of REAL *8 format, rounds val down to the next lower integral value, and returns the result in REAL *8 format. Valid only for POWER5+ processors. |
FRIMS(val); | Takes an input val in REAL *4 format, rounds val down to the next lower integral value, and returns the result in REAL *4 format. Valid only for POWER5+ processors. |
FRIN(val); | Takes an input val in REAL *8 format, rounds val to the nearest integral value, and returns the result in REAL *8 format. Valid only for POWER5+ processors. |
FRINS(val); | Takes an input val in REAL *4 format, rounds val to the nearest integral value, and returns the result in REAL *4 format. Valid only for POWER5+ processors. |
FRIP(val); | Takes an input val in REAL *8 format, rounds val up to the next higher integral value, and returns the result in REAL *8 format. Valid only for POWER5+ processors. |
FRIPS(val); | Takes an input val in REAL *4 format, rounds val up to the next higher integral value, and returns the result in REAL *4 format. Valid only for POWER5+ processors. |
FRIZ(val); | Takes an input val in REAL *8 format, rounds val to the next integral value closest to zero, and returns the result in REAL *8 format. Valid only for POWER5+ processors. |
FRIZS(val); | Takes an input val in REAL *4 format, rounds val to the next integral value closest to zero, and returns the result in REAL *4 format. Valid only for POWER5+ processors. |
In addition, this release of XL Fortran features several new intrinsic procedures and a new VECTOR data type to support VMX vector programming. For more information about these new intrinsic procedures, see VMX intrinsic procedures.
Related Information