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