Re: Why do we still assemble?

bill@amber.ssd.csd.harris.com (Bill Leonard)
Tue, 12 Apr 1994 18:25:34 GMT

          From comp.compilers

Related articles
[16 earlier articles]
Re: Why do we still assemble? hbaker@netcom.com (1994-04-11)
Re: Why do we still assemble? djohnson@arnold.ucsd.edu (1994-04-11)
Re: Why do we still assemble? mfx@cs.tu-berlin.de (1994-04-11)
Re: Why do we still assemble? johnm@cory.EECS.Berkeley.EDU (1994-04-11)
Re: Why do we still assemble? conway@munta.cs.mu.OZ.AU (1994-04-11)
Re: Why do we still assemble? rcskb@minyos.xx.rmit.EDU.AU (1994-04-12)
Re: Why do we still assemble? bill@amber.ssd.csd.harris.com (1994-04-12)
Re: Why do we still assemble? bill@amber.ssd.csd.harris.com (1994-04-12)
Re: Why do we still assemble? pardo@cs.washington.edu (1994-04-13)
Re: Why do we still assemble? hbaker@netcom.com (1994-04-13)
Re: Why do we still assemble? ok@cs.rmit.oz.au (1994-04-13)
Re: Why do we still assemble? rfg@netcom.com (1994-04-13)
Re: Why do we still assemble? rfg@netcom.com (1994-04-13)
[11 later articles]
| List of all articles for this month |

Newsgroups: comp.compilers
From: bill@amber.ssd.csd.harris.com (Bill Leonard)
Keywords: assembler, design
Organization: Harris Computer Systems, Ft. Lauderdale FL
References: 94-04-032 94-04-063
Date: Tue, 12 Apr 1994 18:25:34 GMT

bill@travis.csd.harris.com writes:
>Have you actually profiled those compilers to find out if assembly-parsing
>is really where they are spending their time?


hbaker@netcom.com (Henry G. Baker) writes:
> I've noticed what fraction of the time is spent in assembly vs. cc. I
> haven't determined whether the assembler time is spent in parsing. Except
> for the highest levels of compiler optimization, the assembler was taking
> more time than the compilation proper.


Our C compiler used to produce object code directly. We noticed two
phenomena that made us change this:


    1. A lot of the compilation time was being spent in the object generation
          phase.


    2. A lot of bugs were being fixed in the object generation phase.


We looked at those facts and discussed various ways to address them. The
option we took was to generate assembler instead. One result was that
compilation times *improved*! The reason was that the assembler's object
generator was much more efficient than the one in the compiler.


Now that's not to say that we couldn't have made the compiler's generator
more efficient, and redesigned it to be less buggy. But we decided that,
given limited resources, we should only have one object-code generator.
Given that we had to have an assembler anyway, the assembler was "it".


So, I suggest that you measure where your assembler is spending its time.
It might not be in the parsing. The COFF object file format, in
particular, is the absolute worst design as far as being able to
efficiently produce object code (you have to know absolutely everything
before you know where anything goes), so if that is your target you may
find that it is the actual building of the object file where the time is
being spent.


--
Bill Leonard
Harris Computer Systems Division
2101 W. Cypress Creek Road
Fort Lauderdale, FL 33309
bill@ssd.csd.harris.com
--


Post a followup to this message

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