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

Dmitry Chuyko dmitry.chuyko at bell-sw.com
Wed Nov 1 13:53:27 UTC 2017


Andrew, thanks for an instant review.

Dmitrij Pochepko has pushed the change.

-Dmitry


On 10/31/2017 08:25 PM, Andrew Haley wrote:
> 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.
>



More information about the hotspot-compiler-dev mailing list