RFR(L) 8073583: C2 support for CRC32C on SPARC

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon May 4 21:30:27 UTC 2015


http://cr.openjdk.java.net/~kvn/8073583/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8073583

Contributed by: James Cheng

Two methods in the java.util.zip.CRC32C class are intrinsified on
SPARC with a single stub routine:

     java.util.zip.CRC32C.updateBytes()
     java.util.zip.CRC32C.updateDirectByteBuffer()

Two JVM flags, UseCRC32C and UseCRC32CIntrinsics, are added for
controlling the usage of the CRC32C intrinsics.  They are set to
true on SPARC T4 and later processors, or false on other platforms.
They can be turned off with -XX:-UseCRC32C or -XX:-UseCRC32CIntrinsics.

Performance gains from the CRC32C intrinsics were measured up to 16x
with hotspot/test/compiler/intrinsics/crc32c/TestCRC32C.java or the
JMH-based ChecksumBenchmarks/CRC32C.

Performance gains from the CRC32C intrinsics were also measured with
Hadoop TestDFSIO at about 40% for write test and 80% for read test,

Tested with  hotspot/test/ and jdk/test/java/util/ jtreg tests.


More information about the hotspot-compiler-dev mailing list