# qopt-report, Qopt-report

Enables the generation of a YAML file that includes optimization transformation information.

## Syntax

Linux: | -qopt-report[=arg]

Windows: | /Qopt-report[=arg]

## Arguments

arg | Determines the level of detail in the report. Possible values are:
0 | Disables generation of an optimization report. This is the default when the option is not specified.
1 or min | Tells the compiler to create a report with minimum details.
2 or med | Tells the compiler to create a report with medium details. This is the default if you do not specify arg.
3 or max | Tells the compiler to create a report with maximum details.
Levels 1, 2, and 3 (min, med, and max) include all the information of the previous level, as well as potentially some additional information.

## Default

OFF | No optimization report is generated.

## Description

This option enables the generation of a YAML file that includes optimization transformation information.

The YAML-formatted file provides the optimization information for the source file being compiled. For example:

      icx -fiopenmp -qopt-report foo.c

This command will generate a file called foo.opt.yaml containing the optimization report messages.

Use opt-viewer.py (from llvm/tools/opt-viewer) to create html files from the YAML file. For example:

      opt-viewer.py foo.opt.yaml

You can use any web-browser to open the html file to see the opt-report messages displayed inline with the original. For example:

      Firefox html/foo.c.html source code

For SYCL compilations, you can also use this option to detail the variables passed to the OpenCL kernel in the optimization report. For example:

      icpx -fsycl -qopt-report foo.cpp          ! command for the C++ compiler
      dpcpp -qopt-report foo.cpp               ! command for the DPC++ compiler

The above command will generate a YAML-formatted optimization report that contains optimization remarks for the SYCL pass. These remarks will list the OpenCL kernel arguments generated by the compiler for the user-defined SYCL kernels in foo.cpp. The remarks will also provide additional information like name, type, and size for the OpenCL kernel arguments.

You can then use opt-viewer.py to create html files from the YAML file, and use any web-browser to open the html file to see the opt-report remarks

Note that the YAML file is used to drive the community llvm-opt-report tool.

## IDE Equivalent

None

## Alternate Options

None

Parent topic: Optimization Report Options