On 2015-02-27 23:08, Shmuel Metz , Seymour J. wrote:
In <49f2b7b0100a4f488766e671d8c27dcb971...@defthw99ex2msx.ww931.my-it-solutions.net>, on 02/24/2015 at 10:49 AM, "Beesley, Paul" <[email protected]> said:Our customer has been trialling Enterprise PL/1 4.4, with the intention of upgrading from their current compiler, PL/1 for MVS&VM.I'm curious about how it handles unaligned bit strings. Back in the Paleolithic, when my Uncle Crow and Aunt Maggie roamed the Earth, IBM corrected a bug[1] in PL/1 (F) V4 by always calling a library routine in cases where it had previously used inline code. SMF data are full of unaligned bit data, and performance using V5 was much worse than using V4. Does it still generate library calls for unaligned bit strings, even when the offsets and lengths are fixed? [1] The F compiler used multiple passes, and it didn't have enough data in the early passes to make intelligent decisions. By the time it had analyzed the DECLARE completely, it was already committed to generating bloated code. That fix is why I consistently put "optimizing" in quotes.
The V2.3.0 OS compiler used library calls to handle unaligned bit strings, and I once reduced the CPU overhead from a routine by 99.7% by moving the entire 1730 byte string first into an aligned array, before actually doing the CRC calculations.
A quick and dirty test with Enterprise PL/I (V4.3.0) doesn't show any subroutine calls for them, just in-line code, but the V4.3.0 code is in some other cases, to put it politely, rather less efficient than the V2.3.0 code, see https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=66462
Robert -- Robert AH Prins robert(a)prino(d)org ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
