[TUHS] Memory management in Dennis Ritchie's C Compiler

Bakul Shah bakul at iitbombay.org
Tue Aug 18 08:55:31 AEST 2020

On Aug 17, 2020, at 3:32 PM, Norman Wilson <norman at oclsc.org> wrote:
> The hardest but most-interesting part was optimizing.
> lcc does a lot of optimization work by itself, and
> initially I'd hoped to dispense with a separate c2
> pass entirely, but that turns out not to be feasible
> on machines like the VAX or the PDP-11: internally
> lcc separates something like
> 	c = *p++;
> into two operations
> 	c = *p;
> 	p++;
> and makes two distinct calls to the code generator.
> To sew them back together from
> 	cvtbl	(p),c
> 	incl	p
> to
> 	cvtbl	(p)+,c
> requires external help; lcc just can't see that
> what it thinks of as two distinct expressions
> can be combined.

Didn't lcc use iburg or some such to generate the
code generator, which could do such things?

> See the lcc book for details.  Read the book anyway;
> it's the one case I know of in which the authors
> followed strict Literate Programming rules and made
> a big success of it.  Not only is the compiler well-
> documented, but the result is a wonderful tour
> through the construction and design decisions of a
> large program that does real work.

Agree. They used noweb. Probably with a troff backend?

More information about the TUHS mailing list