Cross-class inlining
Robin Garner
robin.garner@iname.com
Wed Oct 22 09:17:00 GMT 2003
So it does !
Only seems to work if I compile the whole system in a single command, though.
Under what circumstances does it do this inlining ? I tried this:
gcc -O3 -o a.o a.java
gcc -O3 -o b.o b.java a.java
gcc -O3 -o c.o c.java a.java
gcc -O3 -o d.o d.java c.java a.java
etc, where I know (from profiling and hand tinkering) that inlining methods from the rightmost classes in the leftmost ones produced a good speedup. This didn't seem to work at all.
Still, the "all in 1" approach gets a 49% speedup over just -O3 on individual modules, and 17% better than I could do by hand.
And for your interest, JMTk, the memory management subsystem of Jikes RVM now compiles and runs with gcj. Still quite limited (only 1 of the JMTk collectors so far), and only in a testbed environment. Performance, however, is great (and now even better).
Cheers
----- Original Message -----
From: Andrew Haley <aph@redhat.com>
Date: 2003年10月20日 18:41:08 +0100
To: "Robin Garner" <robin.garner@iname.com>
Subject: Cross-class inlining
> Robin Garner writes:
>> > I've seen some mention on the list of inter-class inlining being
> > added to gcj in the near future. Can someone say more ? I presume
> > this is inter-compilation-unit as well as inter-class ?
>> It's already there, and it works.
>> Try this:
>> gcj -O3 a.java b.java c.java -c -o foo.o
> gcj foo.o --main=b
>> Andrew.
--
__________________________________________________________
Sign-up for your own personalized E-mail at Mail.com
http://www.mail.com/?sr=signup
CareerBuilder.com has over 400,000 jobs. Be smarter about your job search
http://corp.mail.com/careers
More information about the Java
mailing list