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