Accelerator Manual (G06.24+, H06.03+)
Accelerator Performance Issues
Accelerator Manual—527303-002
6-6
External Procedure Calls
Procedure '<proc name>' contains:
subproc beginning at offset <address>
returns <number> words at offset <address>
and <number> words at offset <address>
Note 15: The Accelerator could not determine the return value
size of the following subprocedures:
Subprocs embedded in procedure '<proc name>': Entry at offset
<address>; Guessed return size <value>, <n> times
When you specify the ReturnValSize option for a particular procedure, the Accelerator
might issue Warning 30 or 31.
Warning 30: The ReturnValSize options given for the following
procedures conflict with the Binder region:
<proc name>; <value> given as an option;
<value> given in the Binder region
The Accelerator's translation is based on the option.
Warning 31: The ReturnValSize options given for the following
procedures conflict with the derived estimates: <proc name>;
<value> given as an option;
<value> derived by the Accelerator
The Accelerator's translation is based on the option.
Both of these warnings tell you that the specified ReturnValSize options do not match
what Binder or the Accelerator predict them to be. Check to make sure you specified
the correct values in your ReturnValSize options. The Accelerator processes the
program with the value you specified. If you specified an incorrect value, the program
runs incorrectly.
When the Accelerator makes an apparently correct guess (the program does not make
a transition into TNS code on returns from a particular procedure), do not simply build
that guess into later accelerations by means of a ReturnValSize option. The value
guessed by the Accelerator might be wrong, even though the program ran correctly.
The Accelerator checks its guess at run time, and corrects it if necessary. If you give
the Accelerator a ReturnValSize option with an incorrect value based on a guess it
made in an earlier run, the Accelerator accepts that value as true, makes no run-time
check, and potentially generates bad code. Even if the Accelerator correctly guesses
the return value, program logic can cause the number of words returned from a
procedure to vary under different circumstances; although the Accelerator’s guess was
correct in one case, it might be incorrect in others. Specify a return value size only
when you thoroughly understand a program’s logic and know that the value is correct
throughout.
External Procedure Calls
The Accelerator uses information in the OCTDECS file to determine the return value
size for system library routines. (The OCTDECS is supplied as part of the Accelerator
product, and is read automatically.) The Accelerator predicts the value of external
procedure calls to user library routines when the UserLib option is not specified.