Accelerator Manual (G06.27+, H06.04+, J06.03+)

Accelerator Performance Issues
Accelerator Manual527303-003
6-4
Minimizing Transitions Into TNS Code
Most transitions to TNS code do not noticeably affect program performance because
the program usually does not stay in TNS code for a long time. Remove transitions
from performance-critical programs only.
Use the Measure system performance-analysis tool to determine how much time your
program spends executing TNS code. Before you try to eliminate transitions, make
sure that the transitions are not produced by code executing as an endless loop while it
waits for activity.
The following program statements and constructs can cause transitions into TNS code;
you might want to eliminate them from performance-critical programs:
Internal, external, and dynamic procedure calls with unknown return value sizes
Non-standard procedure calls or return RP values
Some SETE instructions
Far jumps in C, FORTRAN and TAL
SETP state machines in TAL
The rest of this section tells you how to prevent these statements and constructs from
causing transitions into TNS code.
In addition to the previously listed statements and constructs, the following statements
and constructs can also cause transitions into TNS code. These transitions do not
significantly affect program performance and can only be eliminated by removing the
statement or construct from your program. It is very unlikely that you will need to
remove any of these statements and constructs for performance reasons:
Some trap handler resumptions
ALTER statements in COBOL
Assigned GOTO statements in FORTRAN
Functions with multiple entry points in FORTRAN
Multidimensional arrays in FORTRAN
Transfer tables constructed with BFI instructions within TAL code statements
Subprocedures with unknown return value sizes
Note. When a labeled statement immediately follows a procedure call, the labeled statement is
not a registerexact point.