Update to this "CALL PLIMOVE generates loop of MVCs" topic:

we did some further research and found out, that for CALL PLIMOVE with
known length at compile time, even with EP PL/1 V3.9, there is a code
sequence generated which uses MVCL, if the length is greater or equal
16384. For lengths below 16384, PL/1 generates a loop of MVCs.

This limit is too high, in our opinion, because some tests showed,
that MVCL is faster than MVCs starting from a length of ca. 768 bytes,
that is 3 MVCs. 16384 needs 64 MVCs (and maybe loop control instructions).

We will ask IBM to change this.

Furthermore, I think that MVCL should not only be generated with
CALL PLIMOVE, but also with "normal" assignments, if the length is
in the same range. But we did no research on this so far; our focus
is on CALL PLIMOVE at the moment.

Kind regards

Bernd



Am 17.05.2012 15:42, schrieb Robert AH Prins:
But here we have a simple instruction of the HLL (PLIMOVE) which I expect
to be implemented using the best instructions the machine provides. If
this turns out not to be the case, this is IMHO simply a bug, not only
a flaw of the optimizer. The programmer already did some kind of optimization him- or herself, when he or she decided to use PLIMOVE. He or she may well expect that the compiler generates the best available machine instruction
for this HLL instruction.


You hit the nail right on the head!
But I do remember that there was a APAR that explains
why the MVCL was removed again.
I can't point you to it as the link to the PL/I APARs has gone 404.

...

Robert

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to