Re: compiler bugs

glen herrmannsfeldt <gah@ugcs.caltech.edu>
Tue, 5 May 2009 17:53:59 +0000 (UTC)

          From comp.compilers

Related articles
[16 earlier articles]
Re: compiler bugs walter@bytecraft.com (Walter Banks) (2009-04-30)
Re: compiler bugs cfc@shell01.TheWorld.com (Chris F Clark) (2009-04-30)
Re: compiler bugs anton@mips.complang.tuwien.ac.at (2009-05-01)
Re: compiler bugs gene.ressler@gmail.com (Gene) (2009-05-01)
Re: compiler bugs cdg@nullstone.com (Christopher Glaeser) (2009-05-04)
Re: compiler bugs anton@mips.complang.tuwien.ac.at (2009-05-05)
Re: compiler bugs gah@ugcs.caltech.edu (glen herrmannsfeldt) (2009-05-05)
Re: compiler bugs gah@ugcs.caltech.edu (glen herrmannsfeldt) (2009-05-05)
Re: compiler bugs cdg@nullstone.com (Christopher Glaeser) (2009-05-06)
Re: compiler bugs anton@mips.complang.tuwien.ac.at (2009-05-06)
Re: compiler bugs cfc@shell01.TheWorld.com (Chris F Clark) (2009-05-07)
Re: compiler bugs barry.j.kelly@gmail.com (Barry Kelly) (2009-05-10)
Re: compiler bugs anton@mips.complang.tuwien.ac.at (2009-05-10)
| List of all articles for this month |

From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups: comp.compilers
Date: Tue, 5 May 2009 17:53:59 +0000 (UTC)
Organization: California Institute of Technology, Pasadena
References: 09-04-072 09-04-086 09-05-010 09-05-022
Keywords: optimize, Fortran, history, comment
Posted-Date: 05 May 2009 14:21:04 EDT

(John wrote)


> [I read an interesting article about the IBM Fortran X compiler, an improved
> version of the classic Fortran H compiler. The guy who did it made sure that
> the new optimized results were always bit identical to what the old compiler
> produced. But I don't know whether he extended that to programs that weren't
> valid Fortran, e.g., with aliased arrays. -John]


I don't know about Fortran X, but the successor to the original H
was H extended, sometimes called HX. As well as I know it,
H was free but HX was a "program product" (licensed and charged for).


One extension was the REAL*16 and COMPLEX*32, extended precision
floating point data types and corresponding library functions.


One example from the "IBM Fortran IV H Extended Compiler
Programmers Guide": SC28-6852-1_OS_FORTRAN_H_Pgmr_Jun72.pdf


            DO 11 I=1,10
            DO 12 J=1,10
    9 IF(B(I).LT.0) GO TO 11
  12 C(J)=SQRT(B(I))
  11 CONTINUE


that the compiler (presumably both H and HX) moves the SQRT
out of the J loop, but not the IF statement. That is legal
Fortran that fails, and that IBM knows fails. (As they suggest,
the programmer should move the IF out of the loop, too.)


-- glen
[Yup, HX, same program. I gather HX has the same broken optimizations
that H did. In its defense, Fortran H did have to invent a lot of the
analysis techniques it used, and run on a 128K (for the young folks, yes,
that's a K) machine. -John]


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.