Xref: utzoo comp.arch:16996 comp.lang.misc:5114 Path: utzoo!attcan!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!aplcen!haven!ncifcrf!lhc!usenet From: usenet@nlm.nih.gov (usenet news poster) Newsgroups: comp.arch,comp.lang.misc Subject: Re: Compiler Costs Message-ID: <1990Jul8.183551.13891@nlm.nih.gov> Date: 8 Jul 90 18:35:51 GMT References: <1797@apctrc.UUCP> <1565@uvm-gen.UUCP> Reply-To: states@tech.NLM.NIH.GOV (David States) Organization: National Library of Medicine, Bethesda, Md. Lines: 34 cavrak@uvm-gen.UUCP (Steve Cavrak,113 Waterman,6561483,) writes: >in response to zrra07@backus (Randall R. Appleton): >> 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? > >An example with VS-FORTRAN on an IBM-3090 with a vector processor. > >a. plain fortran matrix 1.0 >b. full optimized fortran 0.3 >c. IBM's ESSL hand coded library 0.1 or better It is my understanding that on the RS/6000, ESSL is implemented in Fortran, and IBM claims that most ports have experienced zero or negative gains in attempting to hand code assembler on the machine. There have been a number of references to "the ill conceived notions" of higher level languages in this thread, but it is not at all clear to me what these are supposed to be. C was designed as a higher level alternative to assembler. On a RISC machine with a good compiler, a C programmer willing to work on his code ought to be able to do almost anything hand coded assembler can. This may involve looking at assembly output, recoding routines a few times and testing alternative alogorithms, but in the end you still have C (that will run on another processor even if not as fast). On a complicated processor (CISC, non-orthogonal registers, segmented addresses etc.) assembler may do better because the compiler writers made simplifying assumptions about the processor, making some instructions and address constructs inaccessible. Seems like Intel processors will be the last bastion of assembly language. >Steve David States