Re: Why do we still assemble?

pardo@cs.washington.edu (David Keppel)
Fri, 8 Apr 1994 01:53:26 GMT

          From comp.compilers

Related articles
[2 earlier articles]
Why do we still assemble? hbaker@netcom.com (1994-04-06)
Re: Why do we still assemble? djohnson@arnold.ucsd.edu (1994-04-07)
Re: Why do we still assemble? jpab+@andrew.cmu.edu (Josh N. Pritikin) (1994-04-07)
Re: Why do we still assemble? preston@noel.cs.rice.edu (1994-04-07)
Re: Why do we still assemble? Nand.Mulchandani@Eng.Sun.COM (1994-04-07)
Re: Why do we still assemble? pardo@cs.washington.edu (1994-04-08)
Re: Why do we still assemble? pardo@cs.washington.edu (1994-04-08)
Re: Why do we still assemble? law@snake.cs.utah.edu (1994-04-08)
Re: Why do we still assemble? steve@cegelecproj.co.uk (1994-04-08)
Re: Why do we still assemble? bill@amber.csd.harris.com (1994-04-08)
Re: Why do we still assemble? hbaker@netcom.com (1994-04-08)
Re: Why do we still assemble? rcskb@minyos.xx.rmit.EDU.AU (1994-04-10)
Re: Why do we still assemble? Keith.Bierman@Eng.Sun.COM (1994-04-10)
[25 later articles]
| List of all articles for this month |

Newsgroups: comp.compilers
From: pardo@cs.washington.edu (David Keppel)
Keywords: assembler, design
Organization: Computer Science & Engineering, U. of Washington, Seattle
References: 94-04-032
Date: Fri, 8 Apr 1994 01:53:26 GMT

In 94-04-032 hbaker@netcom.com (Henry G. Baker) writes:
>[Other than institutional intertia, why compile to assembly code?]


Many retargetable compilers are written to generate code for an
abstraction of the real machine (I've heard Robert Henry call it the
``Compiler Writer's Virtual Machine'', I don't know if it's a common term
or not, but it should be :-). The CWVM contains a number of
simplifications of the real machine; the assembler and linker are expected
to mop up the spills.


Compiling for a CWVM fails for some of the reasons Henry mentions -- that
the compiler and assembler both do some of the same tasks. But for
``moderately optimizing'' compilers, the separation can be fairly good and
the machine descriptions can be very terse; sometimes a few hundred lines.
More detailed optimizations require a more detailed model of the machine,
though, so the advantages of a simple CWVM get lost.


A little off the topic, note that any retargetable compiler (whether it
generates assembly or machine code) is faced to some degree with the UNCOL
problem: either the abstract machine description omits some details and
thus loses some optimizations, or the abstract machine description comes
to be a union of all possible machine features.


%A M. E. Conway
%T A Proposal For An UNCOL
%J CACM
%V 1
%N 10
%D Oct. 1958
%P 5-8


(This is actually the inverse statement of the original UNCOL problem,
which needs an IR with all source language features, but one implies the
other.)


;-D on ( UNCOLing all cars ) Pardo
--


Post a followup to this message

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