Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!amelia!lemming.nas.nasa.gov!fouts From: fouts@lemming.nas.nasa.gov.nas.nasa.gov (Marty Fouts) Newsgroups: comp.lang.fortran Subject: NEW TOPIC: Consistency of execution environment Message-ID: <995@amelia.nas.nasa.gov> Date: 15 Sep 88 19:14:33 GMT References: <13570@mimsy.UUCP> <3631@lanl.gov> Sender: news@amelia.nas.nasa.gov Reply-To: fouts@lemming.nas.nasa.gov.nas.nasa.gov (Marty Fouts) Lines: 34 On a particular supercomputer I have access to, a certain C compiler produces scalar code which is considerablly faster than the vector code a certain Fortran compiler produces for some particular do loop. Worse, the Fortran compiler produces *pathatic* scalar code when I explicitly force it to not vectorize the loop in question. I mentioned this to an analyst who mumbled some words about preserving the execution environment, which vaugely reminded me of something, but I'm not sure what. (;-( So, a question: Does the Fortran Standard require the consistency of in memory representation of data items? For instance, in the do loop: DO 10 I = 1, 100 J = I C C other things which prevent assuming that J is an alias C 10 CONTINUE I know that Fortran isn't required to keep a memory consistent version of I around, but is it true that some part of the standard can be interpretted as requiring that the value of J in memory be updated for each pass through the loop? Thanks, Marty +-+-+-+ I don't know who I am, why should you? +-+-+-+ | fouts@lemming.nas.nasa.gov | | ...!ames!orville!fouts | | Never attribute to malice what can be | +-+-+-+ explained by incompetence. +-+-+-+