Use the following switches to create a preprocessed library:
-inline_create=<library name> [-incr] -ipa_create=<library name> [-ipacr]
To specify an existing library file to inline from, use the
-inline_from_libraries=
or
-ipa_from_libraries=
switch.
The default source for routines to put into the library is the
current source file. If -inline_from...
or -
ipa_from...
is specified, the routines in the listed files
are the ones put into the library. This provides a method to
combine or expand libraries - just include the old library(ies)
in an -inline_from_libraries
or -ipa_from_
libraries
switch, along with an -inline_from_
files
or -ipa_from_files
switch giving source
files containing any new subroutines and functions.
Routines are included in libraries in the order in which they appear
in the input file(s). This is to make sure that if multiple routines
with the same name are in the same source file, the one chosen for
inlining will be the one that you expect from the algorithm under
the -inline_from...
switch.
A library created with -inline_create
will work for
inlining or IPA, because it is just partially reduced source code,
but a library made with -ipa_create
may not appear in
an -inline_from=
list. It is flagged with a Warning
message.
If no library name is given, the name used is file.klib
, where file is the input file name with any trailing .f,
.for,
or .ftn
stripped off.
When creating a library,
only one -inline_create (-ipa_create)
switch may be
given. That is, only one library may be created per KAP run. If the
library file existed prior to running KAP, it is overwritten.
When -inline_create (-ipa_create)
is specified on the
command line, no transformed code file will be generated.
See the description of the -inline_from_libraries
and
-ipa_from_libraries
switches for information about
using libraries created with these switches.
If no -inline (-ipa)
switch is given, the default
will be to include all the routines from the inlining universe
in the library, if possible. If -inline=<name list>
or -ipa=<name list>
is specified, only the named
routines will be included in the library. See Section 7.5 for a list of conditions that can prevent a routine
from being inlined.
An example of inlining from the library created previously is included in Section 7.2.