[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
Hi,
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