Performance Panel

This panel contains options to improve and report on performance of the compiled object.

See General Dialog Help for information on *CMDDFT settings and pushbutton help.

Enable performance collection
Specifies whether performance data measurement code should be generated in the module or program. The collected data can be used by the system performance tool to profile the performance of an application. Adding performance measurement code will result in slightly larger objects and may affect performance.

You can select one of the following values in this field:

*CMDDFT
Refers to the performance collection setting currently set as default for your system.

*PEP
Performance statistics are only gathered on the entry and exit of the program entry procedure. Choose this value if you want to collect overall performance information for an application. This support is equivalent to the support formerly provided with the TPST tool.

*ENTRYEXIT *NONLEAF
Performance statistics are gathered on the entry and exit of all program procedures that are not leaf procedures. This includes the program PEP routine. Choose this value if you want to collect performance information on routines that call other routines in your application.

*ENTRYEXIT *ALLPRC
Performance statistics are gathered on the entry and exit of all program procedures, including those that are leaf procedures. This includes the program PEP routine. Choose this value if you want to collect performance information on all routines, and if you know that all programs called by your application were also compiled with either the *PEP, *ENTRYEXIT, or *FULL performance data measurement options. If your application calls other programs not enabled for performance measurement, the performance measuring tool will charge their use of resources against your application making it difficult to determine where resources are actually being used.

*FULL *NONLEAF
Performance statistics are gathered on entry and exit of all procedures that are not leaf procedures. Statistics are also gathered before and after each call to an external procedure.

*FULL *ALLPRC
Performance statistics are gathered on the entry and exit of all program procedures, including those that are leaf procedures. Statistics are also gathered before and after each call to an external procedure. Choose this value if your application will call other programs that were not compiled with either the *PEP, *ENTRYEXIT, or *FULL performance data measurement options. This value allows performance tools to distinguish between resources that are used by your application and those used by the programs it calls even if those programs are not enabled for performance measurement. This option is the most expensive but allows for selective analysis of various programs in an application.

Performance options

Floating point computations
If this checkbox is selected, the compiler sets floating point computational attributes to comply with ANSI semantics for floating point computations.

If this checkbox is not selected, no computational attributes are set. Use this only if your program has no floating point computations in it.

Strings in memory
If this checkbox is selected, the compiler may place strings into read-only memory. Otherwise, strings must be placed into writable memory.

Inlining options
Options in this group let you define how the compiler will attempt to inline function calls. Inlining a function eliminates the system overhead of a call and can help achieve better program optimization. Small functions that are called many times are good candidates for inlining.

Inlining
If this checkbox is selected, the compiler will attempt to inline functions in the compilation unit. This option will be ignored if you also use the Debugger view selection on the Debug options panel to request a debug view listing. Selecting this checkbox also enables the following controls:

Automatic inlining
If this checkbox is not selected, only functions explicitly marked with the #pragma inline directive are considered for inlining.

If this checkbox is selected, the inliner automatically determines if a function should be inlined. All functions meeting specified threshold limits are candidates for automatic inlining, except those explicitly marked with the #pragma noinline directive. The following two controls specify the threshold limits:

Maximum size of inlined function
Specifies the maximum size of a function that can be a candidate for automatic inlining. The inliner measures size in Abstract Code Units, which are proportional in size to the executable code in the function. You can select one of the following values in this field:

*CMDDFT
Refers to the maximum size currently set as default for your system.

250
Specifies a threshold size of 250.

*NOLIMIT
Defines the threshold as being the maximum size of the program.

1-65535
Specifies a threshold size from 1 to 65535.

Maximum size of function
Specifies the maximum relative size to which a function can grow before automatic inlining stops.

*CMDDFT
Refers to the maximum size limit currently set as default for your system.

*NOLIMIT
Defines the limit as being the maximum size of the program. System limits may be encountered.

2000
Specifies a size limit of 2000.

1-65535
Specifies a size limit from 1 to 65535.

Inliner report
If this checkbox is selected, an inliner report is produced.

*CMDDFT
An inliner report is generated according to the inliner setting currently set as default for your system.

*NO
An inliner report is not generated.

*YES
An inliner report is generated.
Note:
To view the inliner report, you must also instruct the compiler to produce a compiler listing. To do so, enable the Source listing options checkbox in the Listing compiler options panel.