It's not just OOO that gives optimized compilers an advantage over manually crafted assembler. It's been true since zArchitecture that to write highly effecient code one needs knowledge of the pipeline There was a redbook when the zArch machines z/800 z/900 came out
that mentions the non-sequential code that compilers generate.

http://www.redbooks.ibm.com/redbooks/pdfs/sg246515.pdf

<snip>
There is one programming aspect that is relevant, although only slightly linked to the use of a split cache. For many years, it has been an axiom among S/360 - S/390 users that assembly language programmers probably produce faster code than high-level language compilers. This is no longer true. Processors that use pipelines (including z800 and z900 machines) require a certain amount of nonsequential code to obtain the best performance. For example, if an instruction loads a register and the next instruction uses the register, we do not have optimum code. This sequence will stall the pipeline for several processor cycles. (The instructions work correctly, of course, but they take longer than necessary.) The best technique is to interleave several unrelated instructions between loading a register and using
the new contents of the register.

This is not natural, sequential thinking for an assembly programmer, although he could learn to do it. IBM’s recent S/390 compilers contain logic to produce this sort of optimized code.


On 2/06/2011 12:09 AM, Anne & Lynn Wheeler wrote:
re:
http://www.garlic.com/~lynn/2011g.html#57 What is the current feeling for MVC 
loop vs. MVCL?

other recent gcc reference:
http://www.garlic.com/~lynn/2011g.html#50 My first mainframe experience

... and recent reference to out-of-order pipeline introduced
http://www.garlic.com/~lynn/2011f.html#46 At least two decades back, some gurus 
predicted that mainframes would disappear in future and it still has not 
happened

mentions that introduction of out-of-order in most recent mainframe
accounts for significant part of throughput increase (although it has
been in other architectures for decades).

decades ago, out-of-order was given as major rise of advanced compilers
for high-throughput optimization ... since internal machine processing
was getting a lot more complex with various kinds of instruction
interdependencies and complex dataflow ... becoming harder and harder to
address with manual effort.


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to