RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C
Doerr, Martin
martin.doerr at sap.com
Tue Feb 28 16:07:52 UTC 2017
Hi Lutz,
thanks for implementing my suggestions and for the explanations. The change looks good to me.
Best regards,
Martin
-----Original Message-----
From: Schmidt, Lutz
Sent: Dienstag, 28. Februar 2017 15:28
To: Doerr, Martin <martin.doerr at sap.com>; Vladimir Kozlov <vladimir.kozlov at oracle.com>; hotspot-compiler-dev at openjdk.java.net
Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C
Hi Martin,
Thank you for reviewing and for your suggestions. I have reworked my changes to reflect your improvements. A new webrev can be found here: http://cr.openjdk.java.net/~lucy/webrevs/8175368.01/
The lookup tables in stubRoutines_s390.cpp have been verified by calculating CRC32C values for various byte streams with and without using the tables. Because the tables are auto-generated, it is very unlikely that just a few individual table elements are incorrect.
Best regards,
Lutz
On 28.02.17, 11:57, "Doerr, Martin" <martin.doerr at sap.com> wrote:
Hi Lutz,
thank you very much for implementing it. It looks good. I especially like that you share a lot of the code between CRC32 and CRC32C.
I only have some minor suggestions:
c1_LIRGenerator_s390.cpp
load_int_as_long was implemented for stubs which expect sign (or zero) extended integer parameters.
As C2 was changed to no longer perform int to long conversions for stub calls, I think this should better be removed from C1, too.
The stubs are shared between C1 and C2 and they don't need conversions anymore, so I'd appreciate if the load_int_as_long got removed completely.
macroAssembler_s390.cpp
The function update_1word_crc32 uses separate load and xor instructions. I think some of them should get combined by using xor register,mem.
stubGenerator_s390.cpp
The comment in generate_CRC32_updateBytes should be: "must be same register as in generate..."
stubRoutines_s390.cpp
I didn't review all numbers :-), but I guess you have tested well enough?
It'd be nice if you could share some performance numbers.
Thanks and best regards,
Martin
-----Original Message-----
From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Schmidt, Lutz
Sent: Montag, 27. Februar 2017 22:33
To: Vladimir Kozlov <vladimir.kozlov at oracle.com>; hotspot-compiler-dev at openjdk.java.net
Subject: Re: RFR (M) 8175368: [s390] Provide intrinsic implementation for CRC32C
Thank you, Vladimir, for looking at this.
Regards, Lutz
On 27.02.17, 22:30, "Vladimir Kozlov" <vladimir.kozlov at oracle.com> wrote:
Shared changes are good. I assume s390 code will be reviewed by experts.
Thanks,
Vladimir
On 2/27/17 9:34 AM, Schmidt, Lutz wrote:
> Hi all,
>
>
>
> the webrev URL below was incorrect. It displayed the correct location,
> but pointed elsewhere. The issue is fixed now and the URLs are correct.
>
>
>
> Thank you!
>
> Lutz
>
>
>
> *From: *Lutz Schmidt <lutz.schmidt at sap.com>
> *Date: *Montag, 27. Februar 2017 um 15:55
> *To: *"hotspot-compiler-dev at openjdk.java.net"
> <hotspot-compiler-dev at openjdk.java.net>
> *Subject: *RFR (M) 8175368: [s390] Provide intrinsic implementation for
> CRC32C
>
>
>
> Hi all,
>
>
>
> may I kindly request reviews for my medium enhancement? Further down the
> road, I would need a sponsor, too.
>
>
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8175368
>
> Webrev: http://cr.openjdk.java.net/~lucy/webrevs/8175368/
>
>
>
> Description:
>
> This intrinsic implementation provides some performance benefit over the
> standard Java implementation. It uses only well-known “standard”
> instructions, available on all supported IBM System z hardware. Being
> very similar to the CRC32 intrinsics, it was tried to share as much code
> as possible between these two.
>
>
>
> Performance may be expected to increase up to 2.0x, compared to a run
> with –XX:-UseCRC32CIntrinsics. Actual speedup depends on the length of
> the byte array fed into CRC32C and, to some extent, on the H/W
> generation the test runs on.
>
>
>
> Thanks,
>
> Lutz
>
>
>
More information about the hotspot-compiler-dev
mailing list