Subject: Re: proposal: libcc1 -> static
To: David Brownlee <abs@anim.dreamworks.com>
From: Todd Vierling <tv@pobox.com>
List: tech-toolchain
Date: 01/03/1999 20:12:33
On Sun, 3 Jan 1999, David Brownlee wrote:

: 	Wasn't one of the ideas behind going to libcc1.so to share memory
: 	between different passes of the compiler to make using pipes
: 	feasible. (The whole point being to speed up compiling).

Demand paged VM == for the same language, you get this benefit anyway.
Remember that binaries' text pages are shared, even between different
invocations, as well as unmodified data pages.  A shared object actually
slows down each invocation because of all the reloc fixups.  Christoph
drilled this reminder into me.  :>

It's only when you heavily mix languages that you get a speedup with the
shared object, and then, it's not much of a speedup.

: 	The disk space savings have to be pretty small - we currently link
: 	four binaries {cc1,cc1obj,cc1plus,f771} against libcc1 (which is
: 	around 1.4MB on an i386 system). I don't know how much of the
: 	library is used by each binary.

100% by cc1 and cc1obj; about 40% by cc1plus and 30% by f771.

: 	Maybe someone interested enough in this could time their compiles
: 	(static/dynamic normal/-pipe) and let the list know what the
: 	relevant time/diskspace tradeoffs are?

I'm working on doing such for i386 and sparc.

-- 
-- Todd Vierling (Personal tv@pobox.com; Bus. todd_vierling@xn.xerox.com)