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@orXXXX@nnn@, whereXXXXis the partition name, and wherennnis 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.