Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!gatech!uflorida!stat!stat.fsu.edu!mccalpin From: mccalpin@masig1.ocean.fsu.edu (John D. McCalpin) Newsgroups: comp.lang.fortran Subject: Re: Fortran 8x: pointers and optimization Message-ID: Date: 27 Jun 89 16:22:26 GMT References: <2773@elxsi.UUCP> Sender: news@stat.fsu.edu Distribution: usa Organization: Supercomputer Computations Research Institute Lines: 32 In-reply-to: corbett@beatnix.UUCP's message of 26 Jun 89 22:31:02 GMT In article <2773@elxsi.UUCP> Bob Corbett writes: > There have been articles posted to this group claiming that pointers >make optimization impossible and that the SET RANGE and IDENTIFY statements >would not affect optimization. Those claims are simply wrong. I don't think that anyone (particularly me) claimed that that SET RANGE made no influence on optimization. What I did suggest is that using SET RANGE to define subarrays is much easier to optimize than using the current draft's POINTERs, since the kinds of things that can be done with SET RANGE are much more limited. Since the draft clearly allows POINTERs to point to arbitrary array sections (see the examples in the draft), I fully expect that many of those who wanted SET RANGE will go ahead and use POINTERs for this same purpose, with potentially negative optimization results. Bob pointed out that SET RANGE is an executable statement. This brings up the question of its domain of influence. I don't have my draft handy, but if SET RANGE has global influence then serious optimization trouble could result! For example: REAL, ARRAY(10,10),RANGE :: A,B,C ! syntax ? SET RANGE ( arguments ) CALL DUMMY ! dummy defines a different range for ! the same range group A = B+C ! what range is used here ? END On the other hand, IDENTIFY clearly has the same sort of aliasing problems as POINTER. I am not sure about ALIAS, but I seem to recall that it was even more limited.... -- John D. McCalpin - mccalpin@masig1.ocean.fsu.edu - mccalpin@nu.cs.fsu.edu