PATCH: Parallel compilation of class files
Bryce McKinlay
bryce@waitaki.otago.ac.nz
Thu May 9 19:58:00 GMT 2002
Mark Mitchell wrote:
> Here's the much-discussed patch to allow parallel make in libjava (and in
> user programs as well).
>
> Tested on i686-pc-linux-gnu, applied on the mainline.
Unfortunately this patch has caused a pretty bad build-time regression
for libjava. Previously the class files were built in a special order,
with the most commonly used things like java.lang.Object and
java.lang.Throwable being built first. This meant that gcj can use the
.class files for these classes on subsequent invocations and avoid
repeatedly parsing the same files over and over. Now, they seem to get
compiled in some different order which makes each invocation of gcj take
much longer.
Secondly the gcjh header generation no longer waits until libgcj.jar is
complete, which makes this step much slower also because gcjh must also
resolve parse source files rather than much faster class files.
I'm not sure how to fix this without reverting the patch. Any ideas?
Ideally we will just run gcj once to build all the class files (and have
it figure out the dependencies), but gcj can't do that yet.
regards
Bryce.
More information about the Gcc-patches
mailing list