From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,b19fa62fdce575f9 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-12-20 17:40:06 PST Path: nntp.gmd.de!Germany.EU.net!howland.reston.ans.net!swiss.ans.net!cmcl2!thecourier.cims.nyu.edu!thecourier.cims.nyu.edu!nobody From: dewar@cs.nyu.edu (Robert Dewar) Newsgroups: comp.lang.ada Subject: Re: Array mappings Date: 20 Dec 1994 09:09:13 -0500 Organization: Courant Institute of Mathematical Sciences Message-ID: <3d6oi9$ldb@gnat.cs.nyu.edu> References: <9412061309.AA02026@ajpo.sei.cmu.edu> <3cv7t2$no2@gnat.cs.nyu.edu> <3d2pia$pcu@felix.seas.gwu.edu> <3d2ve2$pig@gnat.cs.nyu.edu> <3d5ims$7gv@felix.seas.gwu.edu> NNTP-Posting-Host: gnat.cs.nyu.edu Date: 1994-12-20T09:09:13-05:00 List-Id: Mike wonders about the difficulty of applying traditional fortran optimization techniques to Ada. There is no conceptual problem in writing highly optimizing Ada backends. I don't think the "highly structured for loop" of Ada is any particular help, it is essentially identical to the do loop of Fortran in any case. THe only conceptual problem arises as a result of the dynamic lower bounds, which threaten to generate extra instructions in some cases, although address reduction in loops will generally eliminate this extra work in most loops. Another approach is to use virtual origins for arrays, which is our eventual plan in GNAT. The difficulty is that the amount of technical resources to do a highly optimizing backend of this case is HUGE, and I can't believe it would have been worth the investment of tens of person years to develop Ada optimization to this level, especially early on. Furthermore, such an expenditure of effort would have harmed stability and reliability. Fortran users tend to be more concerned with speed than with reliability (the infamous Cray division which gives wrong results very fast is an indicator of this general attitude), and that of course is the wrong way round for most Ada users. Obviously the way to get high performance is to borrow an existing backend, which of course is what we have done with GNAT. The performance of GNAT for a simple arithmetic loop should be entirely comparable to that of GNU Fortran or GNU C, which is pretty darned good, but probably STILL not as good as the really hot commercial Fortran compilers on which huge optimziation efforts have been spent.