[10] RFR: 8189745 - AARCH64: Use CRC32C intrinsic code in interpreter and C1

Andrew Haley aph at redhat.com
Tue Oct 31 17:25:58 UTC 2017


On 31/10/17 16:01, Dmitry Chuyko wrote:

> Please review an improvement of CRC32C calculation on AArch64. The 
> implementation is based on JDK-8155162 [1] and the code for CRC32.
> Intrinsics for array / byte buffer and direct byte buffer are enabled in 
> C1 on AArch64, LIRGenerator::do_update_CRC32C calculates parameters and 
> calls StubRoutines::updateBytesCRC32C().
> Template interpreter now also generates 
> TemplateInterpreterGenerator::generate_CRC32C_updateBytes_entry where it 
> calculates parameters and jumps to StubRoutines::updateBytesCRC32C().
> rfe: https://bugs.openjdk.java.net/browse/JDK-8189745
> webrev: http://cr.openjdk.java.net/~dchuyko/8189745/webrev.00/
> benchmark: 
> http://cr.openjdk.java.net/~dchuyko/8189745/crc32c/CRC32CBench.java
> Performance results for T88 [2] show ~7x boost in C1 and ~30-50x boost 
> in interpreter.
> For testing I made comparison of CRC32C result sets in C1 and 
> interpreter for both array and direct byte buffer with zero and non-zero 
> offset.

That looks good to me, thanks.

Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671

More information about the hotspot-compiler-dev mailing list