This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: If you had a month to improve gcc build parallelization, where would you begin?
- From: Matthias Klose <doko at ubuntu dot com>
- To: Simon Baldwin <simonb at google dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 03 Apr 2013 23:41:14 +0200
- Subject: Re: If you had a month to improve gcc build parallelization, where would you begin?
- References: <CAPTY64o0UBQBwnq_GMNOBRmdBV4QTc+En3Q7pLn6iR1aKXKQTA at mail dot gmail dot com>
Am 03.04.2013 17:27, schrieb Simon Baldwin:
> Suppose you had a month in which to reorganise gcc so that it builds
> its 3-stage bootstrap and runtime libraries in some massively parallel
> fashion, without hardware or resource constraints(*). How might you
> approach this?
>
> I'm looking for ideas on improving the build time of gcc itself. So
> far I have identified two problem areas:
>
> - Structural. In a 3-stage bootstrap, each stage depends on the
> output of the one before. No matter what does the actual compilation
> (make, jam, and so on), this constrains the options.
> - Mechanical. Configure scripts cause bottlenecks in the build
> process. Even if compilation is offloaded onto something like distcc,
> configures run locally and randomly throughout the complete build,
> rather than (say) all at once upfront. Source code compilation
> blocks until configure is completed.
- the configuration and build of the runtime libraries (libgcc,
libgomp, libstdc++) during the bootstrap is mostly serial.
- multilibs are built for stage2 and stage3, but are not needed.
multilib builds for the libararies are only needed for the final
build of the target libraries.
the simple approach to disable the multilib build in the toplevel
makefile doesn't work, as the same target apparently used for the
final build.
- libjava should not be built for multilibs at all unless configured
otherwise. and maybe the static build should be disabled by default too.
Matthias