[distcc] Re: Using cc1/cc1plus directly from distccd?

Stuart D. Gathman stuart at bmsi.com
Mon Mar 3 17:22:26 GMT 2003

Martin Pool wrote:

>>Even with compatible assemblers, splitting out the assembly phase
>>provides yet another opportunity for parallelization.
>Last time I measured, assembly was very cheap compared to compilation,
>so it would likely not be worthwhile in most cases.
As posted in another message, my benchmarking shows that while CPU for 
assembly is very cheap, the overlap provided by -pipe when cc1 runs 
remote and as runs local provides a 2x speedup over the way distcc works 

I found that -B works very well to make gcc use stub versions of 
compiler passes.  It is not necessary to symlink other gcc tools.  If 
stubs are installed as /usr/lib/distcc/cc1 and /usr/lib/distcc/cc1plus, 
then gcc -B/usr/lib/distcc is sufficient to use the stubs.  Of course, 
this only works with gcc, and distcc also supports other compilers.  

So, now my goals are:

a) extend distcc protocol to support simultaneous pipelines 
input/output.  My benchmarking shows that this will provide a 2x speedup 
when combined with -pipe and local assembly.

b) create a cc1 stub that uses the distcc protocol.  How will it know 
the path to cc1 to run on the volunteer?  Currently, it is hardwired, 
but perhaps a config file should be used.

c) modify distcc client to pass -B to gcc to use cc1{plus} stub.  May 
require switch to enable since this is gcc specific.

	      Stuart D. Gathman <stuart at bmsi.com>
Business Management Systems Inc.  Phone: 703 591-0911 Fax: 703 591-6154
"Confutatis maledictis, flamis acribus addictis" - background song for
a Microsoft sponsored "Where do you want to go from here?" commercial.

More information about the distcc mailing list