Inline Report

The Inline Report listing section describes the actions that are performed by the IPA inliner. In this report, the term 'subprogram' is equivalent to a C/C++ function or a C++ method. The summary contains such information as:
  • Name of each defined subprogram. IPA sorts subprogram names in alphabetical order.
  • Reason for action on a subprogram:
    • You specified #pragma noinline for the subprogram.
    • You specified #pragma inline for the subprogram.
    • IPA performed automatic inlining on the subprogram.
    • There was no reason to inline the subprogram.
    • There was a partition conflict.
    • IPA could not inline the subprogram because IL data did not exist.
  • Action on a subprogram:
    • IPA inlined subprogram at least once.
    • IPA did not inline subprogram because of initial size constraints.
    • IPA did not inline subprogram because of expansion beyond size constraint.
    • The subprogram was a candidate for inlining, but IPA did not inline it.
    • Subprogram was a candidate for inlining, but was not referred to.
    • The subprogram is directly recursive, or some calls have mismatched parameters.
  • Status of original subprogram after inlining:
    • IPA discarded the subprogram because it is no longer referred to and is defined as static internal.
    • IPA did not discard the subprogram, for various reasons:
      • Subprogram is external. (It can be called from outside the compilation unit.)
      • Subprogram call to this subprogram remains.
      • Subprogram has its address taken.
  • Initial relative size of subprogram (in Abstract Code Units).
  • Final relative size of subprogram (in Abstract Code Units) after inlining.
  • The number of calls within the subprogram and the number of these calls that IPA inlined into the subprogram.
  • The number of times the subprogram is called by others in the compile unit and the number of times IPA inlined the subprogram.
  • The mode that is selected and the value of threshold and limit specified. Static functions whose names may not be unique within the application as a whole will have names prefixed with @nnn@ or XXXX@nnn@, where XXXX is the partition name, and where nnn is the source file number.
The detailed call structure contains specific information of each subprogram such as:
  • Subprograms that it calls.
  • Subprograms that call it.
  • Subprograms in which it is inlined.

The information can allow better analysis of the program if you want to use the inliner in selective mode. The counts in this report do not include calls from non-IPA to IPA programs.