[comp.lang.fortran] How much illegal are these

afs@ardent.com (08/24/89)

This is a continuing reponse to Hugh Song from U of Illinois.
First, a commentary on the behavior of Ardent's compiler options:

1. There is a compiler option "-fullsubcheck" which is used in
Ardent's Fortran compilations at Optimization levels 0 and 1 for detection
of subscript range problems.  At execution, his example code
produces warning messages for both the original and the variant 
in H. Song's second posting.  Unfortunately, this option is not 
available at higher levels of optimization which Song was using,
including our Optimization Level 2, which executes his code using
vectorized operations. 

2. The compiler option "-subcheck" is a less stringent test, which
is applied only to the resulting address expression (not to each
executable reference).  While it is available at Optimization Level 2,
it is NOT performing a complete error-checking analysis on EACH 
element that is to be fetched by a vector-fetch operation, and thus
may occasionally miss an illegal reference in code such as Song's. 
His example has been reported as a "bug" in the behavior of the 
subcheck option at Optimization level 2.

3. When executing a program using vector operations, the increased 
speed comes in part from allowing multiple fetch, arithmetic and
store operations to take place in a pipeline without being
interrupted.  Extensive error checking cannot be done at vector-speed.
An option such as "-subcheck" is thus compromised at higher levels
of optimization. (e.g. we attempt to check only first and last 
elements of a vector pipeline for legality).

General principle: Optimizing illegal code doesn't make it better.
-----
Al Shpuntoff, Senior Instructor/Course Developer
Ardent Computer            408-732-0400
880 West Maude Avenue
Sunnyvale, CA 94086        

afs@ardent.com		or   afs%ardent.com@uunet.uu.net

UUCP:   {hplabs, ubvax,decwrl, ucbcad, uunet}!ardent!afs
Dialcom:    134:CMP2016
-----
Al Shpuntoff               Senior Instructor/Course Developer
Ardent Computer            408-732-0400
880 West Maude Avenue      afs@ardent.com or afs%ardent.com@uunet.uu.net
Sunnyvale, CA 94086        Dialcom: 134:CMP2016