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

Error, Warning, and Note Messages
Accelerator Manual527303-003
9-3
Note Messages
3
Cause. The Accelerator was not able to determine the size of the value returned by the
given dynamic procedure calls. It guessed a return value size based on the context of
the call, and emitted a run-time check to verify its guess.
Effect. The accelerated program executes correctly. The Accelerator emitted a run-
time check to assure that its guess was correct. If the Accelerator guessed the correct
return value size for the dynamically called procedure, then the program continues to
execute the accelerated code after calls to the procedure. If the Accelerator guessed
incorrectly, then the program makes a transition into executing TNS code after calls to
the procedure.
Recovery. For programs that are not written in TAL, there is no recovery.
For TAL programs, you can eliminate the transition into TNS code for the following two
conditions:
1. For DPCL instructions in CODE statements, follow the DPCL instruction with a
STRP instruction to tell the Accelerator how many registers in the register stack
are part of the value returned by the dynamically called procedure. Recompile and
accelerate the program again.
2. For calls to formal procedure parameters that the TAL compiler processed as a
DPCL instruction, recompile with a version of TAL compiler released after
15JUN91 and accelerate the program again.
4
Cause. The Accelerator must predict the value of the register pointer (RP) at every
instruction in a program. The Accelerator found two converging control paths that
conflict in their predicted register pointer values. The Accelerator cannot honor the
assumptions made on both paths.
While clever TAL programmers can write code with converging paths that they intend
to have conflicting register stack sizes, this message usually indicates a place in the
program where the Accelerator became confused because:
1. The Accelerator issued an incorrect return value size guess earlier. Note 1, Note 2,
and Note 3 indicate these guesses.
2. The Accelerator overestimated the length of a BFI transfer table (“CASE”
statements or hand-coded BFI transfer tables in TAL).
Note 3: The Accelerator was not able to determine return
value size of the following dynamic procedure calls in your
program: Call at offset <address> in proc <name>; guessed
return size <num>
Note 4: Mismatched RP values converge at the following locations:
RP1 RP2 offset Procedure
<num> <num> <address> <proc name>