...written by Christian Thalinger
twisti's weblog

Wednesday Sep 09, 2009

I'm still working on HotSpot compiler support for JSR 292.  The progress is actually very good and inlining is already working in C2.  Although there are still some problems with scavenging oops in nmethods and you have to stick to UseSerialGC if you want to give it a try.  But John Rose is working on a fix for that.

While not working on inlining I started porting JSR 292 support to x86_64.  I've already commited the interpreter support and compiler support is in the works and almost finished.

In the meantime Charles Nutter introduced another dynamic language, called Surinx, which uses invokedynamic and "the solid performance of Surinx bodes very well for JRuby's future."  That sounds good.

Thursday May 07, 2009

Today I pushed the changes for 6823354 which adds intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}() methods.  The speedups are quite good:


Integer Long
numberOfLeadingZeros numberOfTrailingZeros numberOfLeadingZeros numberOfTrailingZeros
Intel Nehalem 32-bit 3.18 3.96 1.36 1.90
64-bit 3.83 3.74 2.02 2.17
AMD Shanghai 32-bit 1.94 3.55 0.98 2.44
32-bit w/ lzcnt 4.90 - 1.46 -
64-bit 2.52 3.09 1.86 3.26
64-bit w/ lzcnt 6.77 - 3.71 -
UltraSparc T2 32/64-bit 2.01 2.22 1.55 1.91

"w/ lzcnt" in the table means the numbers are using AMD's LZCNT (count leading zeros) instruction which is part of SSE4a.

The SPARC intrinsics need a hardware implementation of the POPC instruction.

Yet I haven't found a real-world application that uses these methods extensively (including bitCount), but if anyone knows one, please let me know.

Tuesday Feb 03, 2009

Today I pushed my first bugfix.  To be honest, I had a little help from Tom Rodriguez who pointed me to the right function.  I hope someday the time will come when I can help you, Tom :-)

Wednesday Jan 28, 2009

Yesterday I was able, after some trouble with Mercurial queues, to push my first commit to the HotSpot repository.  The changeset is actually uninspiring but hey, it's my first one!

Wednesday Jan 14, 2009

Those of you who have wondered what I will do in the future: I'm now part of the HotSpot team at Sun Microsystems and I will work on the C2 (server) compiler.

Actually today is my third day but only now my account is working.  I'm really looking forward to tackle the challenges that will come up.

And as I always said, I will not leave the Free Java Community...