Developer Guide and Reference

ID 767251
Date 10/31/2024
Public
Document Table of Contents

Optimization Reports

The compiler options qopt-report (Linux*) [Q]opt-report (Windows*) generate optimization reports with different levels of detail. Related compiler options, listed under Optimization Report Options, allow you to specify the phase, direct output to a file (instead of stderr), and specify whether functions and methods are displayed with mangled or demangled names.

Certain options allow you to request that optimization reports are generated during the compile step or the link step.

NOTE:
Many interprocedural optimizations (IPO) can be performed either at compile time or at link time, so you may see different information. Differences in optimization levels and the use of profile-guided optimization (PGO) tools can also produce different results.

The following table lists the available optimization report options:

Linux

Windows

Description

-qopt-report[=n]

/Qopt-report[:n]

Enables optimization report generation with different levels of detail. Valid values for n are 0 through 3. By default, when you specify this option without passing a value the compiler will generate a report with a medium level of detail. Higher numbers give greater levels of detail.

-qopt-report-file=file

/Qopt-report-file:file

Generates an optimization report and directs the report output to the specified file name. If you omit the path, the file is created in the current directory. To create the file in a different directory, specify the full path to the output file and its file name.

-qopt-report-stdout

/Qopt-report-stdout

Equivalent to -qopt-report-file=stdout or /Qopt-report-file:stdout.

-qopt-report-phase[=list]

/Qopt-report-phase[:list]

Specifies a comma separated list of optimization phases to use when generating reports. If you do not specify a phase the compiler defaults to all. You can request a list of all available phases by using the [Q]opt-report-help option.

-qopt-report-names

/Qopt-report-names

Specifies whether mangled or demangled names appear in the optimization report. If this option is not specified, demangled names are used by default.

If you specify mangled, encoding (also known as decoration) is added to names in the optimization report. This is appropriate when you want to match annotations with the assembly listing. If you specify demangled, no encoding (or decoration) is added to names in the optimization report. This is appropriate when you want to match annotations with the source listing. If you use this option, you do not have to specify the -qopt-report (Linux) or /Qopt-report (Windows) option.