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

Hiroshi H Horii HORII at jp.ibm.com
Sun Sep 18 15:00:57 UTC 2016


Hi Martin, and all

Thank you for your reviewing. Gustavo and I recreated a new change based 
on your comments. I would like to review it again.

My account of cr server is not available now (because of my mistake...) 
and Gustavo cannot create a webrev file with another reason. I would like 
to attach a diff file created with "hg diff -g" in hotspot.  If possible, 
could someone create a webrev file with this changeset?

I also attach a test program for CRC32 Intrinsic.



Regards,
Hiroshi
-----------------------
Hiroshi Horii, Ph.D.
IBM Research - Tokyo




From:   "Doerr, Martin" <martin.doerr at sap.com>
To:     Hiroshi H Horii/Japan/IBM at IBMJP, 
"hotspot-compiler-dev at openjdk.java.net" 
<hotspot-compiler-dev at openjdk.java.net>
Cc:     "Volker Simonis (volker.simonis at gmail.com)" 
<volker.simonis at gmail.com>, Gustavo Bueno Romero <gromero at br.ibm.com>
Date:   09/13/2016 18:36
Subject:        RE: RFR(m) 8164920: ppc: enhancement of CRC32 intrinsic



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/20160918/c0595e0e/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CRC32Test.java
Type: application/octet-stream
Size: 8738 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160918/c0595e0e/CRC32Test-0001.java>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hotspot.crc32.20160918.changeset
Type: application/octet-stream
Size: 60026 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160918/c0595e0e/hotspot.crc32.20160918-0001.changeset>


More information about the hotspot-compiler-dev mailing list