The -inline_and_copy
command switch functions like
the -inline
switch, except that if all CALLs or
references to a subprogram are inlined, the text of the routine
is not optimized, but is copied unchanged to the transformed code
file. This is intended for use when inlining routines from the same
file as the call, and has no special effect when the routines being
inlined are being taken from a library or another source file.
When a subprogram has been inlined everywhere it is used, leaving it unoptimized saves compilation time. When a program involves multiple source files, the unoptimized routine will still be available in case one of the other source files contains a reference to it, so no errors will result.
-inline_and_copy
algorithm assumes that all CALLs
and references to the routine precede it in the source file. If
the routine is referenced after the text of the routine, and that
particular call site cannot be inlined, the unoptimized version of
the routine will be invoked.