Developer Guide and Reference

Contents

Inlining Report

Function inlining can improve execution time by removing the runtime overhead of function calls; however, function inlining can increase code size, code complexity, and compile times. In general, when you instruct the compiler to perform function inlining, the compiler examines the source code in a much larger context, and the compiler can find more opportunities to apply optimizations.
The Inlining Report is part of the Opt Report. The compiler options
-qopt-report
(Linux* and
macOS*
) and
/Qopt-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 specific file,
stdout
or
stderr
, and request reports from all routines with names containing a specific string as part of their name.
The inlining report is a description of the inlining choices that were made for each routine that is compiled in the program. It is produced as part of the opt report. To restrict the opt report to contain ONLY the inlining report, use the option
-qopt-report-phase=ipo
(Linux* and
macOS*
) or
/Qopt-report-phase:ipo
(Windows*).
The user can control the amount of information by specifying a level for the inlining report. The level is shown by a number from 1 to 5. Level 1 contains the smallest amount of information, and each level adds information to the report. Level 2 is the default report.
Level
Summary
Level 1
Shows each call that was inlined
Level 2 (default report)
Shows the values of the key inlining options
Level 3
Shows the calls to routines with external linkage
Level 4
Shows:
  • Whole program information
  • Size (sz) of the each routine inlined and the increase in application size (isz) due to each instance of inlining
  • Routine percentages
  • Calls that are not inlined
Level 5
Shows inlining footnotes, which contain advice on how to change the inlining to potentially improve application performance
The inlining report gives you an in-depth overview of the compiler's inlining decisions, which occur within five levels of granularity. You