The following qualifiers specify names of particular functions
to inline. The default is all functions in the function
universe specified by any /inline_from...
(/ipa_from...
) qualifiers, subject to the
/inline_looplevel
/ipa_looplevel
and
/inline_depth
settings.
/inline[=name[,name..]] [/inl=] /ipa[=name[,name..]] [/ipa=]
Inlining and IPA are off by default. That is, if you do not specify inlining (IPA) qualifiers, then no inlining (IPA) will take place.
If you omit /inline
(/ipa
) from the
command line, you can still enable automatic selection of functions
to inline (analyze) with one of the /..._from_...
qualifiers. You can perform manual selection of functions
to inline (analyze) with the /inline_manual
(/ipa_manual
) qualifiers and the inline (IPA) pragmas.
If you specify /inline
(/ipa
) on the
command line without a list of function names, then all functions
in the inlining (IPA) universe are eligible, subject to the
/inline_looplevel
(/ipa_looplevel
)
value.
If you specify /inline
(/ipa
) on the
command line with a list of function names, then only the functions
that are included in the list are eligible, subject to the
/inline_looplevel
(/ipa_looplevel
) and
/inline_depth
values.
The following qualifiers have no versions, but they must have arguments, as follows:
/noinline=name[,name..] [/ninl=] /noipa=name[,name..] [/nipa=]
These qualifiers enable the automatic inlining (IPA) algorithms in the same way that inline (IPA) does when given without arguments, but the functions listed are ones to NOT be inlined (analyzed). That is, all the functions but the named ones are eligible.
You cannot specify both /inline
and
/noinline
(/ipa
and /noipa
) on the same command line.
If all call sites of a function are to be inlined, the following
variant of the /inline
qualifier may be of interest:
/inline_and_copy[=name[,name..]] [/inlc=]
The /inline_and_copy
command qualifier functions like
the /inline
qualifier, except that if all references
to a function are inlined, the inlined function is copied to the
transformed code file unchanged.
When a function has been inlined everywhere it is used, not optimizing it saves compilation time and deleting its text saves memory. These qualifiers are intended for use when the functions being inlined are in the same file as the function reference, and have no special effect when the functions being inlined are being taken from a library or another source file.
/inline_and_copy
, later references in the same
file will either be inlined or execute the unoptimized function;
references in other files will execute the unoptimized function.