Options on this panel define the output generated by the compiler.
See General Dialog Help for information on *CMDDFT settings and
pushbutton help.
- Generation options
-
- Authority
- Specifies the object authority to users who do not have specific authority
to the object. The user may not be on the authorization list, or whose
group has no specific authority to the object. You can select one of
the following values in this field::
- *CMDDFT
- Refers to the object authority currently set as default for your
system.
- *LIBCRTAUT
- Public authority for the object is taken from the CRTAUT keyword of the
target library (the library that contains the created object). This
value is determined when the object is created. If the CRTAUT value for
the library changes after the object is created, the new value does not affect
any existing objects.
- *ALL
- Provides authority for all operations on the object except those that are
limited to the owner or controlled by the authorization list management
authority. Any user can control the object's existence, specify
its security, and perform basic functions on it but cannot transfer its
ownership.
- *CHANGE
- Provides all data authority and the authority to perform all operations on
the object except those that are limited to the owner or controlled by object
authority and object management authority. The object can be changed
and basic functions performed upon it.
- *EXCLUDE
- Users without special authority cannot access the object.
- *USE
- Provides object operational authority, read authority, and authority for
basic operations on the object. Users without specific authority are
prevented from changing the object.
- Target release
- Specifies the release level of the operating system for the object being
created. You can select one of the following values in this
field:
- *CMDDFT
- Refers to the release level currently set as default for your
system.
- *CURRENT
- The object being compiled is intended for use on an operating system with
the same or greater release level than the operating system currently running
on your system. For example, if the compiling system is at release
level V2R3M5, selecting this option will produce an object that can run on a
system with releaselevel V2R3M5 or greater installed.
- *PRV
- The object being compiled is intended for use on an operating system one
level back from the operating system being used on the compiling
system. For example, if the compiling system is at release level
V2R3M5, selecting this option will produce an object that can run on a system
with release level V2R2 or greater installed.
You can also type the target release-level directly into this field.
Specify the release using the format VxRxMx, where
Vx is the version, Rx is the release, and Mx is the
modification level. For example, V4R3M0 is version 4, release 3,
modification level 0.
- Optimization
- Specifies the level of optimization applied to the compiled object.
You can select one of the following values in this field:
- *CMDDFT
- Refers to the optimization level currently set as default for your
system.
- 10
- Generated code is not optimized. This level has the shortest
compile time.
- 20
- Some optimization is performed on the generated code
- 30
- Full optimization is performed on the generated code.
- 40
- All optimizations done at level 30 are performed on the
generated code. In addition, code is eliminated from procedure prologue
and epilogue routines that enable instruction trace and call trace system
functions. Eliminating this code enables the creation of leaf
procedures. Leaf procedures do not contain calls to other procedures,
and procedure calls to leaf procedures are significantly faster than calls to
normal procedures.
- Enum size
- Specifies how much storage an enum will occupy. You can select one
of the following values in this field:
- *CMDDFT
- Uses the enum size currently set as default for your system.
- 1
- Makes all enum variables 1 byte in size.
- 2
- Makes all enum variables 2 bytes in size.
- 4
- Makes all enum variables 4 bytes in size.
- *INT
- Use the ANSI C++ Standard enum size ( 4-bytes signed; unless the
enumeration value > 231-1).
- *SMALL
- Selects the smallest size that will accomodate the enum variable.
- Storage model
- Specifies the type of storage (static and automatic) that the module
object will use. You can select one of the following values in this
field:
- *CMDDFT
- Refers to the enum size currently set as default for your system.
- *SNGLVL
- The module or program will use the traditional single level storage
model. Static and automatic storage for the object are allocated from
single-level store, and can only be accessed using 16-byte pointers.
The module may optionally access teraspace dynamic storage if the
TERASPACE(*YES) option is specified.
- *TERASPACE
- The module or program will use the teraspace storage model. This
storage model provides up to a 1-terabyte local address space for a single
job. Static and automatic storage for the object are allocated from
teraspace and can be accessed using either 8-byte or 16-byte pointers.
- *INHERIT
- The module created can use either single level or teraspace
storage. The type of storage used will depend on the type of storage
required by the caller.
- Intermediate language data
- If this checkbox is selected, intermediate language data is stored with
the object module being compiled.
- Default char type
- If this checkbox is selected, the compiler treats char as a
signed type. Otherwise, char is treated as an unsigned
type.
- Profiling data
- If this checkbox is selected, program profiling is turned on for the
program or module being compiled. Code is generated that will collect
profiling data at object creation time, including the number of times basic
block within procedures are executed and the number of times procedures are
called. Profiling can improve the use of cache lines and memory pages
in ILE applications, leading to better program performance.
Notes:
- You cannot profile a stand-alone *MODULE object.
- This option has effect only when the following options on the Generation
options panel are also enabled:
- Optimization is set to *FULL, 30, or
higher.
- Target release is set to *CURRENT.
- Teraspace options
-
- Teraspace storage addresses
- If this checkbox is selected, the compiler will generate code enabled to
handle teraspace storage addresses, including parameters passed from other
teraspace-enabled programs and service programs. Selecting this
checkbox also enables the following checkbox:
- Teraspace storage functions
- If this checkbox is selected, the compiler will use teraspace versions of
storage functions, such as malloc or schmat, without
requiring changes to the program source code. The compiler defines the
__TERASPACE__ macro, and maps certain storage function names to their
teraspace-enabled equivalents. For example, selecting this compiler
option causes the malloc() storage function to be mapped to
_C_TS_malloc().
If this checkbox is not selected, the compiler will
not use teraspace-enabled versions of storage functions, such as
malloc() or schmat().
- Template options
-
- Temporary include directory
- This selection specifies where templates resulting from automatic template
instantation are placed. The following option may be specified:
- *CMDDFT
- Template instantiation files are placed into the location currently set as
default on your system.
- directory_pathname
- Template instantiation files are placed is a directory location that you
specify. The template instantiation files created have the root name of
the header file in which the template was found and a filename extension of
.C. If template instantiation files already exist, the compiler
seaches them to see if a given template instantiation already exists before
adding it to an instantiation file.
The directory path can be relative to the current directory, or it can be
an absolute directory path. If the specified directory does not exist,
it is created. However, an error condition results if the specified
directory path contains a directory that does not exist, for example,
/source/subdir1/tempinc when subdir1 does not exist.
- Maximum generated headers
- Specifies the maximum number of template include files to be generated for
each header file.
- Template validity checking
- Specifies the level of validity checking applied to templates. The
following options may be specified:
- *CMDDFT
- Templates are checked for validity according to the default set for your
system.
- *NO
- Does not check the validity of template implementations.
- *WARN
- Parses template implementations and issues warning messages for semantic
errors.
- *ERROR
- Treats problems in template implementations as errors, even if the
template is not instantiated.
(C) Copyright IBM Corporation 1992, 2005. All Rights Reserved.