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