# Requesting Compiler Reports with the xi* Tools

The compiler options qopt-report (Linux* and macOS*) and [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 request reports from all routines with names containing a specific string as part of their name.

The xi* tools are used with inter-procedural optimization (IPO) during the final stage of IPO compilation. You can request compiler reports to be generated during the final IPO compilation by using certain options. The supported xi* tools are:

- Linker tools: xilink (Windows*) and xild (Linux* and macOS*)

- Library tools: xilib (Windows*), xiar (Linux* and macOS*), xilibtool (macOS*)

The following tables lists the compiler report options that can be used with the xi* tools during the final IPO compilation.

Optimization Report Option | Description
--- | ---
-qopt-report[=n] (Linux* and macOS*) /Qopt-report[:n] (Windows*) | Enables optimization report generation with different levels of detail. Valid values for n are 0 through 5. 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=filename (Linux* and macOS*) /Qopt-report-file:filename (Windows*) | 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-phase[=list] (Linux* and macOS*) /Qopt-report-phase[:list] (Windows*) | 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. To generate a report for the IPO phase, use the -qopt-report-phase=ipo (Linux* and macOS*) or /Qopt-report-phase:ipo (Windows) option.
-qopt-report-routine=substring (Linux* and macOS*) /Qopt-report-routine:substring (Windows*) | Generates reports for all routines with names containing substring as part of their name. You can also specify a sequence of substrings separated by commas. If you do this, the compiler generates an optimization report for each of the routines whose name contains one or more of these substrings. If substring is not specified, the compiler generates reports on all routines.
-qopt-report-filter=string (Linux* and macOS*) /Qopt-report-filter:string (Windows*) | Tells the compiler to find the indicated parts of your application specified by string, and generate optimization reports for them. If both -qopt-report-routines=string1 and qopt-report-filter=string2 are specified, it is treated as -qopt-report-filter=string1;string2.
-qopt-report-help (Linux* and macOS*) /Qopt-report-help (Windows*) | Displays the optimization phases available to use when using the -qopt-report-phase (Linux* and macOS*) or [q or Q]opt-report-phase (Windows*) or option.
-qopt-report-names (Linux* and macOS*) /Qopt-report-names (Windows*) | Specifies whether mangled or unmangled names appear in the optimization report. If this option is not specified, unmangled 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 unmangled, 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 option -qopt-report (Linux* OS and macOS*) or /Qopt-report (Windows* OS).

Parent topic: Interprocedural Optimization (IPO)

## See Also

qopt-report, Qopt-report compiler option
qopt-report-file, Qopt-report-file compiler option
qopt-report-help, Qopt-report-help compiler option
qopt-report-phase, Qopt-report-phase compiler option
qopt-report-routine, Qopt-report-routine compiler option
qopt-report-filter, Qopt-report-filter compiler option