Re: Multi-threaded compilers

Michael Parkes <mparks@oz.net>
18 Feb 1996 21:19:33 -0500

          From comp.compilers

Related articles
Multi-threaded compilers egouriou@CS.UCLA.EDU (Eric Gouriou) (1996-02-16)
Re: Multi-threaded compilers jplevyak@violet-femmes.cs.uiuc.edu (1996-02-16)
Re: Multi-threaded compilers Martin.Jourdan@inria.fr (1996-02-16)
Re: Multi-threaded compilers jan@neuroinformatik.ruhr-uni-bochum.de (1996-02-16)
Re: Multi-threaded compilers pieper@mink.zko.dec.com (1996-02-16)
Re: Multi-threaded compilers shaw@hammer.lcs.mit.edu (1996-02-16)
Re: Multi-threaded compilers nr@cs.purdue.edu (1996-02-16)
Re: Multi-threaded compilers mparks@oz.net (Michael Parkes) (1996-02-18)
Re: Multi-threaded compilers dw@pdp1.sys.toronto.edu (1996-02-19)
Re: Multi-threaded compilers lampe@math.tu-dresden.de (1996-02-23)
Re: Multi-threaded compilers solution@gate.net (1996-02-23)
Re: Multi-threaded compilers Jean-Louis.Pazat@irisa.fr (1996-02-26)
Re: Multi-threaded compilers dw@pdp1.sys.toronto.edu (1996-02-27)
| List of all articles for this month |

From: Michael Parkes <mparks@oz.net>
Newsgroups: comp.compilers
Date: 18 Feb 1996 21:19:33 -0500
Organization: Sense Networking Seattle (www.oz.net)
References: 96-02-170
Keywords: parallel

Eric Gouriou <egouriou@CS.UCLA.EDU> wrote:
>I am looking for papers/references about parallelization of compilers
>(and NOT compilers for parallel machines), or distributed compilation.
...
>[I remember seeing a little work on it, but I've never seen anything
>useful below the granularity of distributed make. -John]


I have worked in this area on an autmated compiler construction tool
known as the ACC - this tool produced compilers that executed in
parrallel. Trying to write a compiler that executes in parrallel is
quite tricky as the source being compiled often has sequential
constraints. Thus, there are all-sorts of inter-dependancies. The
most straight-forward method is to execute parts of the compiler in
parrallel. The ACC executes the lexer, syntax/semantics, optimiser,
code generator, et al as separate processes in parrallel -
communicating via pipes. This has an additional advantage in that the
parts of the compiler communicate using a formal interface. Hence,
each stage is totally free standing and thus is much easier to
debug/support/enhance/test et al. Stages can even be added/removed at
compile time as long as the interfaces are the same.


In short - my experimentation showed that a compiler written in this
way scales to the number of stages fairly well. Thus, a multi-stage
compiler will execute significantly faster on an SMP box than a
traditional compiler. There are obvious limits such as the system is
only as fast as the slowest stage and that it can only use as many
CPUs at there are stages.


Finally, GCC supports an option that allows the assembly language
translation to execute at the same time as the GCC front end.


Regards,


Mike
GCC
--


Post a followup to this message

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