Path: utzoo!attcan!uunet!mstan!amull From: amull@Morgan.COM (Andrew P. Mullhaupt) Newsgroups: comp.lang.misc Subject: Re: Compiler Costs Summary: You can _lose_ at this game pretty easily Message-ID: <1196@s8.Morgan.COM> Date: 7 Jul 90 16:13:51 GMT References: <1797@apctrc.UUCP> <2317@l.cc.purdue.edu> Organization: Morgan Stanley & Co. NY, NY Lines: 28 In article <1797@apctrc.UUCP>, zrra07@backus (Randall R. Appleton) writes: > I have a simple question: Does anyone know what sort of speed-up > on gets by going from a good implementation of some algorithm in a > third generation language (C, Fortran) and a good optimizing compiler > to hand-coded assembly? > > In other words, if I take my average well written program, compiled > with a good optimizing compiler, and re-write it in assembler, what sort > of speedup should I expect to see? On many machines, like the CDC 6600 and the R/6000, the FORTRAN compilers are going to get as much or more than you are. You will normally produce very slow code on a 6600 unless you really understand the scheduling of the functional units. The FORTRAN compiler for the R/6000 produces such good code that IBM has decided to implement ESSL (a major assembly code on the 3090) in FORTRAN on the R/6000. Their reason is that they can't beat the FORTRAN code. There are machines like the i860 where hand coded assembler is a lot faster than most compiled code, but if people still have i860 compilers ten years from now, you should expect the compiler code to be faster than hand generated, since the i860 is so complicated. Once you figure out how to take advantage of the weird hardware, the compiler _always_ takes advantage. The assembler language programmer is not as consistent. Later, Andrew Mullhaupt