Re: compiler bugs

glen herrmannsfeldt <>
Tue, 5 May 2009 17:53:59 +0000 (UTC)

          From comp.compilers

Related articles
[16 earlier articles]
Re: compiler bugs (Walter Banks) (2009-04-30)
Re: compiler bugs (Chris F Clark) (2009-04-30)
Re: compiler bugs (2009-05-01)
Re: compiler bugs (Gene) (2009-05-01)
Re: compiler bugs (Christopher Glaeser) (2009-05-04)
Re: compiler bugs (2009-05-05)
Re: compiler bugs (glen herrmannsfeldt) (2009-05-05)
Re: compiler bugs (glen herrmannsfeldt) (2009-05-05)
Re: compiler bugs (Christopher Glaeser) (2009-05-06)
Re: compiler bugs (2009-05-06)
Re: compiler bugs (Chris F Clark) (2009-05-07)
Re: compiler bugs (Barry Kelly) (2009-05-10)
Re: compiler bugs (2009-05-10)
| List of all articles for this month |

From: glen herrmannsfeldt <>
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))

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.