Performance and optimization

Some features and enhancements can assist with performance tuning and optimization of your application.

Enhancements to -qstrict

Many suboptions have been added to the -qstrict option to allow more fine-grained control over optimizations and transformations that violate strict program semantics. In previous releases, the -qstrict option disabled all transformations that violate strict program semantics. This is still the behavior if you use -qstrict without suboptions. Likewise, in previous releases -qnostrict allowed transformations that could change program semantics. Because a higher level of optimizations might require relaxing strict program semantics, the addition of the suboptions relaxes selected rules to get specific benefits of faster code without turning off all semantic verifications.

You can use 16 new suboptions separately or use a suboption group. Here is a list of suboption groups:
all
Disables all semantics-changing transformations, including those controlled by the other suboptions.
ieeefp
Controls whether individual operations conform to IEEE 754 semantics.
order
Controls whether individual operations can be reordered in a way that violate program language semantics.
precision
Controls optimizations and transformations that can affect the precision of program results.
exceptions
Controls optimizations and transformations that can affect the runtime exceptions generated by the program.

For detailed information about these suboptions, see -qstrict.

Performance-related compiler options and directives

The entries in the following table describe new or changed compiler options and directives.

Information presented here is a brief overview. For detailed information about these and other performance-related compiler options, see Optimization and tuning options.

Table 1. Performance-related compiler options and directives
Option/directive Description
-qstrict Many new suboptions have been added to give you more control over the relaxation of program semantic rules in order to gain some performance benefits.
../compiler_ref/opt_float.html-qfloat Some -qfloat suboptions are affected by the new suboptions for -qstrict.
-qreport The listing now contains information about how many streams are created for each loop and which loops cannot be SIMD vectorized due to non-stride-one references. You can use this information to improve the performance of your applications.
-qsmp When -qsmp=omp is in effect, the additional functionality of OpenMP API 3.0 is now available. For more information, see OpenMP 3.0.

For additional information about performance tuning and program optimization, see Optimizing your applications.