Optimizer Report Generation

The Intel® C++ Compiler provides options to generate and manage optimization reports:

Specifying Optimizations to Generate Reports

The compiler can generate reports for an optimizer you specify in the phase argument of the -opt_report_phasephase option. The option can be used multiple times on the same command line to generate reports for multiple optimizers. Currently, the following optimizer reports are supported.

Optimizer
Logical
Name
Optimizer Full Name
ipo Interprocedural Optimizer
hlo High Level Optimizer
ilo Intermediate Language Scalar Optimizer
ecg Code Generator
omp Open MP
all All phases

When one of the above logical names for optimizers is specified, all reports from that optimizer are generated.

For example, -opt_report_phaseipo -opt_report_phaseecg generates reports from the interprocedural optimizer and the code generator.

Each of the optimizers can potentially have specific optimizations within them. Each of these optimizations are prefixed with one of the optimizer logical names. For example:

Optimizer_optimization Full Name
ipo_inline Interprocedural Optimizer, inline expansion of functions
ipo_constant_propagation Interprocedural Optimizer, constant propagation
ipo_function_reorder Interprocedural Optimizer, function reorder
ilo_constant_propagation Intermediate Language Scalar Optimizer, constant propagation
ilo_copy_propagation Intermediate Language Scalar Optimizer, copy propagation
ecg_software_pipelining Code Generator, software pipelining

All optimization reports that have a matching prefix with the specified optimizer are generated. For example, if -opt_report_phase ilo_co is specified, a report from both the constant propagation and the copy propagation are generated.

The Availability of Report Generation

The -opt_report_help option lists the logical names of optimizers available for report generation.