IBM Support

POWER7 tolerance for IBM XL Compilers

Preventive Service Planning


Abstract

What does POWER7 tolerance mean and what should I be aware of when using it? Which compilers provide POWER7 tolerance?

Content

The latest versions of XL C, XL C/C++ and XL Fortran compilers (that is, IBM XL C for AIX, V11.1, IBM XL C/C++ for AIX, V11.1 and IBM XL Fortran for AIX, V13.1) provide support for the POWER7 processors including exploitation of the new POWER7 functions.

For earlier versions of XL C, XL C/C++ and XL Fortran compilers, you can download PTFs that will provide POWER7 tolerance. With POWER7 tolerance, the compilers accept "pwr7" sub-options specified on the command line but will not exploit new POWER7 functions.

If you have the POWER7 tolerance PTFs installed for any of the compilers listed in Table 1 or 2 below, consider the following compilation scenarios:

  1. If you specify -qarch=pwr7 or -qtune=pwr7 on any POWER machine, the compilers will accept them as valid sub-options but will map the specified -qarch=pwr7 or -qtune=pwr7 to -qarch=pwr6 or -qtune=pwr6.
  2. If you specify -qarch=auto or -qtune=auto on a POWER7 machine*, the compilers will map them to -qarch=pwr6 or -qtune=pwr6.
  3. If you specify -qarch=auto or -qtune=auto on a non-POWER7 machine*, the compilers will automatically detect the specific architecture of the compiling machine. That is, the compilers have not changed in behavior for this case.

For the above cases, warning messages will not be issued and the resulting binaries will run on POWER7.

If you do not have the POWER7 tolerance PTFs installed for any of the compilers listed in Table 1 or 2 below, consider the following compilation scenarios:
  1. If you specify -qarch=pwr7 or -qtune=pwr7 on any POWER machine, a warning message will be issued during compilation indicating that the values are not recognized. The specified values will be ignored and compilation will proceed with default -qarch and -qtune values**.
  2. If you specify -qarch=auto or -qtune=auto on a POWER7 machine*, the compiler will automatically detect that pwr7 is not valid and a warning message will be issued during compilation indicating that the values are not recognized. Compilation will proceed with default -qarch and -qtune values**.
  3. If you specify -qarch=auto or -qtune=auto on a non-POWER7 machine*, the compilers will automatically detect the specific architecture of the compiling machine and a warning message will not be issued. That is, the compilers have not changed in behavior for this case.

For the above cases, the resulting binaries will run on POWER7.

*When -O4 or -O5 is in effect, -qarch=auto and -qtune=auto are automatically turned on.
**The default values are the ones specified in the Compiler Reference manual for each compiler version.

The following provides POWER7 tolerance to previous compilers via the specified PTF (or any later subsequent PTF):

Table 1: XL C/C++/Fortran for AIX
AIX
C Compiler
XL C for AIX, V10.1
XL C Enterprise Edition for AIX, V9.0
C/C++ Compiler
XL C/C++ for AIX, V10.1
XL C/C++ Enterprise Edition for AIX, V9.0
Fortran Compiler
XL Fortran for AIX, V12.1
XL Fortran Enterprise Edition for AIX, V11.1

Table 2: XL C/C++/Fortran for Linux
Linux on Power Systems
C/C++ Compiler
XL C/C++ for Linux, V10.1
XL C/C++ Advanced Edition for Linux, V9.0
Fortran Compiler
XL Fortran for Linux, V12.1
XL Fortran Advanced Edition for Linux, V11.1


Latest Compiler Updates
The above may not be the latest C/C++ or Fortran PTFs for the specified compiler version. Click on C/C++ or Fortran for the latest updates.

[{"Product":{"code":"SSGH3R","label":"XL C\/C++ for AIX"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Component":"Compiler","Platform":[{"code":"PF002","label":"AIX"}],"Version":"9.0;10.1","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}},{"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"Compiler","Platform":[{"code":"","label":"Linux on Power systems"}],"Version":"9.0;10.1","Edition":"Not Applicable","Line of Business":{"code":"LOB57","label":"Power"}},{"Product":{"code":"SSGH4D","label":"XL Fortran for AIX"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"Compiler","Platform":[{"code":"PF002","label":"AIX"}],"Version":"11.1;12.1","Edition":"Not Applicable","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}},{"Product":{"code":"SSAT4T","label":"XL Fortran for Linux"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Component":"Compiler","Platform":[{"code":"","label":"Linux on Power systems"}],"Version":"11.1;12.1","Edition":"Advanced","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

Document Information

Modified date:
06 December 2018

UID

swg21427761