RFR(m) 8164920: ppc: enhancement of CRC32 intrinsic

Doerr, Martin martin.doerr at sap.com
Tue Sep 13 09:35:09 UTC 2016


Hi Hiroshi,

we appreciate your change. Thanks for contributing it.
It basically looks good, but I'd like to propose some minor improvements.


kernel_crc32_1word_vpmsumd:

1. The Pre-align code can be implemented shorter:
    clrldi_(prealign, buf, 57);
    beq(CCR0, L_alignHead);

    subfic(prealign, prealign, 128);

2. I'd prefer the label name "L_alignedHead".

3. The branch b(L_alignTail) and the label are not needed and should get removed.


kernel_crc32_1word_aligned:

1. When saving and restoring non-volatile vector register, please use offset differences of -16 instead of -32.
(The ABI allows up to 288 bytes to be used in frameless functions so it will fit if -16 is used.)

2. The std instructions should better be used with int offsets so you can get rid of the addi(offset, offset, -8) instructions.


Comments:
For single line comments "//" should be used instead of "/*". Would be nice if you could change them.


Thanks and best regards,
Martin


From: Hiroshi H Horii [mailto:HORII at jp.ibm.com]
Sent: Dienstag, 6. September 2016 16:50
To: hotspot-compiler-dev at openjdk.java.net; vladimir.kozlov at oracle.com
Cc: Volker Simonis (volker.simonis at gmail.com) <volker.simonis at gmail.com>; Doerr, Martin <martin.doerr at sap.com>; Gustavo Bueno Romero <gromero at br.ibm.com>
Subject: RFR(m) 8164920: ppc: enhancement of CRC32 intrinsic

Dear Vladimir and all:

Can I please request reviews for the following change?

JIRA: https://bugs.openjdk.java.net/browse/JDK-8164920
webrev: http://cr.openjdk.java.net/~gromero/8164920/01/

As Volker's comments in the above JIRA, this is a ppc64-only improvement which will not
affect any of the Oracle platforms in any way.

This change includes new implementation of CRC32 Intrinsics for ppc64le.
In my local experiment, CRC32 of 64KB was calculated more than 20 times faster than original.
Performance of CRC32 Intrinsic is important to run recent Apache Cassandra.
A Cassandra daemon needs to read 64KB data from a disk with CRC32 checksum by default.

This JIRA entry has "jdk9-fc-request" label.
If there is a chance to include new change in JDK 9 for ppc64le, I would like to request
a review for this change.

Regards,
Hiroshi
-----------------------
Hiroshi Horii, Ph.D.
IBM Research - Tokyo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160913/1e071122/attachment-0001.html>


More information about the hotspot-compiler-dev mailing list