-qreport
Pragma equivalent
None.
Purpose
Produces listing files that show how sections of code have been optimized.
A listing file is generated with a .lst suffix for each source file named on the command line. When used with an option that enables vectorization, the listing file shows a pseudo-C code listing and a summary of how program loops are optimized. The report also includes diagnostic information to show why specific loops could not be vectorized. For instance, when -qreport is used with -qsimd=auto, messages are provided to identify non-stride-one references that can prevent loop vectorization.
The compiler also reports the number of streams created for a given loop, which include both load and store streams. This information is included in the Loop Transformation section of the listing file. You can use this information to understand your application code and to tune your code for better performance. For example, you can distribute a loop which has more streams than the number supported by the underlying architecture. The POWER8® processors support both load and store stream prefetch.
Defaults
-qnoreport
Usage
- -qipa=level=2
- -qpdf2 -qreport
To generate data reorganization information, specify the optimization level -qipa=level=2 or -O5 together with -qreport. Reorganizations include array splitting, array transposing, memory allocation merging, array interleaving, and array coalescing.
To generate information about data prefetch insertion locations, use the optimization level of -qhot, or any other option that implies -qhot together with -qreport. This information appears in the LOOP TRANSFORMATION SECTION of the listing file. In addition, when you use -qprefetch=assistthread to generate prefetching assist threads, the message: Assist thread for data prefetching was generated also appears in the LOOP TRANSFORMATION SECTION of the listing file.
The pseudo-C code listing is not intended to be compilable. Do not include any of the pseudo-C code in your program, and do not explicitly call any of the internal routines whose names may appear in the pseudo-C code listing.
Predefined macros
None.
Examples
xlc -qhot -O3 -qreport myprogram.c