Developer Directed Inline Expansion of User Functions
- Inlining keywords:indicates to the compiler to inline the specified function. For example,__inline,__forceinline.
- Procedure-specific inliningindicates to the compiler to inline calls within the targeted procedure if it is legal to do so. For example,pragmas:.#pragma inlineor#pragma forceinline
- GCC function attributes for inlining:indicates to the compiler to inline the function even when no optimization level is specified. For example,__attribute__((always_inline)).
Inlining inhibited by limit max-total-size. Use -qopt-report -qopt-report-phase=ipo for full report.
Controls the multiplier applied to all inlining options that define upper limits:
inline-max-per-compile. While you can specify an individual increase in any of the upper-limit options, this single option provides an efficient means of controlling all of the upper-limit options with a single command.
By default, this option uses a multiplier of 100, which corresponds to a factor of 1. Specifying 200 implies a factor of 2, and so on. Experiment with the multiplier carefully. You could increase the upper limits to allow too much inlining, which might result in your system running out of memory.
Instructs the compiler to force inlining of functions suggested for inlining whenever the compiler is capable doing so.
Without this option, the compiler treats functions declared with the
as merely being recommended for inlining. When this option is used, it is as if they were declared with the
Redefines the maximum size of small routines; routines that are equal to or smaller than the value specified are more likely to be inlined.
Redefines the minimum size of large routines; routines that are equal to or larger than the value specified are less likely to be inlined.
Limits the expanded size of inlined functions.
You can also use
#pragma optimization_parameter inline-max-total-size=Nto control the size an individual routine can grow through inlining.
Limits the number of times inlining can be applied within a routine.
You can also use
#pragma optimization_parameter inline-max-per-routineto control the number of times inlining may be applied to a routine.
Limits the number of times inlining can be applied within a compilation unit.
The compilation unit limit depends on the whether or not you specify the
[Q]ipocompiler option. If you enable IPO, all source files that are part of the compilation are considered one compilation unit. For compilations not involving IPO each source file is considered an individual compilation unit.