Re: latest trends in compiler optimization research?

Brooks Moses <bmoses-nospam@cits1.stanford.edu>
Thu, 09 Aug 2007 19:42:27 -0700

          From comp.compilers

Related articles
[6 earlier articles]
Re: latest trends in compiler optimization research? adelantado@rwaltman.com (Roberto Waltman) (2007-08-01)
Re: latest trends in compiler optimization research? dot@dotat.at (Tony Finch) (2007-08-01)
Re: latest trends in compiler optimization research? onkar.n.m@gmail.com (onkar) (2007-08-03)
Re: latest trends in compiler optimization research? al407@cam.ac.uk (Anton Lokhmotov) (2007-08-07)
Re: latest trends in compiler optimization research? wyrmwif@tsoft.org (SM Ryan) (2007-08-07)
Re: latest trends in compiler optimization research? wclodius@lanl.gov (2007-08-09)
Re: latest trends in compiler optimization research? bmoses-nospam@cits1.stanford.edu (Brooks Moses) (2007-08-09)
Re: latest trends in compiler optimization research? dot@dotat.at (Tony Finch) (2007-08-08)
Re: latest trends in compiler optimization research? srimks11@gmail.com (srimks11@gmail.com) (2007-08-11)
Re: latest trends in compiler optimization research? gah@ugcs.caltech.edu (glen herrmannsfeldt) (2007-08-11)
| List of all articles for this month |

From: Brooks Moses <bmoses-nospam@cits1.stanford.edu>
Newsgroups: comp.compilers
Date: Thu, 09 Aug 2007 19:42:27 -0700
Organization: Stanford University
References: 07-08-016 07-08-021
Keywords: parallel, Fortran, design
Posted-Date: 09 Aug 2007 22:51:15 EDT

SM Ryan wrote:
> I lost track of Fortran before 90 was standarised, but the array
> notation of 8X was seriously broken: while theoretically letting
> programmers express themselves at a high level, it forced serial
> semantics whether the programmer intended that or no; thus the
> notation could not be vectorised or parallelised any easier than if
> explicit do loops had been used.


The problem with the actual standardized Fortran 90 semantics is
arguably the opposite: it forces parallel semantics whether the
programmer intended that or no. For example,


    a(x) = s * a(y)


(where x and y are vectors) allows x to contain some of the same
elements as y, and requires results that are consistent with calculating
the entire vector of right-hand sides prior to doing any assignments.


This tends, in cases where the scalarizer isn't sufficiently clever (or
sufficiently well-informed), to result in the creation of unnecessary
array temporaries -- which can be a substantial performance hit in cases
where those temporaries are large.


- Brooks


--
The "bmoses-nospam" address is valid; no unmunging needed.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.