Additional features and enhancements assist with performance tuning and application optimization.
The use of the -qpdf option consists of two steps. First, compile your program with -qpdf1 and run it with a typical set of data to generate the profiling data. Second, compile your program again with -qpdf2 to optimize the program based on the profiling data.
In previous releases, if you modified the source file and compiled with the -qpdf option, the compilation would stop with an error. As of IBM XL C/C++ for AIX, V11.1, you can use profiling data after you modify your source files. To do this, compile your application using the stale profiling data at the second stage of the PDF process.
Three new suboptions are added to the -qpdf option. These new suboptions allow more fine-grained control over performance improvement and extend -qpdf to support multiple pass profiling, cache miss profiling, block counter profiling, call counter profiling, and extended value profiling.
For detailed information about these suboptions, see -qpdf1, -qpdf2 in the XL C/C++ Compiler Reference.
There have been a number of enhancements to the listing reports to give you more information on how the compiler optimized your code. You can use this information to get further benefits from the compiler's optimization capabilities. For more details about these enhanced reports, see New diagnostic reports.
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.
| -qfuncsect | An enhancement added to -qfuncsect is to improve linker garbage collection of functions with XL C/C++ programs. -qfuncsect places instructions for each function in a separate object file control section or CSECT which may reduce the size of your program. Placing each function in its own CSECT enables the linker to perform garbage collection on a per function basis rather than per object file. For details, see the -qfuncsect section in the XL C/C++ Compiler Reference. |
| -qhot | Two suboptions -qhot=fastmath and -qhot=nofastmath are added to -qhot, to tune your applications to use the fast scalar versions of the math routines or to use the default versions. -qhot=level=2 is also added for loop transformation analysis of nested loops. For details, see the -qhot section in the XL C/C++ Compiler Reference. |
| -qinline=level=number | A new option is added to -qinline to provide guidance to the compiler about the relative value of inlining in relation to the default value of 5.number is a range of integer values between 0 and 10 that indicates the level of inlining you want to use. For details, see -qinline in the XL C/C++ Compiler Reference. |
| -qipa | A new enhancement added to -qipa is -r -qipa=relink. You can generate relinkable objects while preserving IPA information by specifying -r -qipa=relink. This creates a nonexecutable package that contains all object files. By using this suboption, you can postpone linking until the very last stage. -qipa=clonearch is no longer supported. Consider using -qtune=balanced. For detailed information, see -qipa section in the XL C/C++ Compiler Reference. |
| -qpdf | -qpdf provides suboptions to give you more control flexibility in controlling different PDF optimizations. For more information, see the -qpdf1, -qpdf2 section in the XL C/C++ Compiler Reference. |
| -qprefetch | A new enhancement added to -qprefetch is -qprefetch=assistthread. -qprefetch inserts prefetch instructions automatically where there are opportunities to improve code performance. For details, see -qprefetch in the XL C/C++ Compiler Reference. |
For additional information about performance tuning and program optimization, see Optimizing your applications.