Architecture and processor support

The -qarch and -qtune compiler options control the code generated by the compiler. These compiler options adjust the instructions, scheduling, and other optimizations to give the best performance for a specified target processor or range of processors.

New default settings for -qarch, -qtune

The new default -qarch and -qtune settings are:
  • -qarch=ppc
  • -qtune=balanced

The -qtune=balanced suboption is new for this release, and becomes the default -qtune setting when certain -qarch settings are specified. Using -qtune=balanced instructs the compiler to tune generated code for optimal performance across a range of recent processor architectures, including POWER6™.

Important: The change to the -qarch default suboption setting can affect the results of floating-point short arithmetic computations in your programs. The -qarch=com default used in the previous release of the compiler caused such computations to be performed using double precision instructions followed by rounding. The new -qarch=ppc default instructs the compiler to generate code that uses short floating point instructions. The difference in computational method can affect the precision of computational results. To achieve the behavior of the previous -qarch=com default, specify the new -qfloat=nosingle compiler option when compiling your application.

New support for POWER6 processors

XL C/C++ Version 9.0 expanded the list of -qarch and -qtune suboptions to support the newly-available POWER6 processors.

The following -qarch and -qtune options are now available:
  • -qarch=pwr6
  • -qarch=pwr6e
  • -qtune=pwr6

Support removed for selected processors

XL C/C++ Version 9.0 removed support for processor architectures not supported by AIX® V5.2, such as POWER®, POWER2™, and PowerPC® 601. As a result, the following -qarch and -qtune suboption settings are no longer supported.
  • -qarch= com | pwr | pwr2 | pwr2s | p2sc | 601 | 602 | 603
  • -qtune= pwr | pwr2 | pwr2s | pwrx | p2sc | 601 | 602 | 603
The compiler continues to recognize these suboption settings, and will still generate code for their corresponding architectures. However, in some cases the behavior of that code might differ from code generated by previous versions of the compiler. Also, code generated for these unsupported architectures may not even execute at all on supported AIX systems because of differences in architecture.

Use caution if you will still be using these unsupported -qarch and -qtune suboption settings.