Is there any response from core-libs-dev?
Vladimir,
Could you give your suggestion on how to proceed?
Best regards,
--
Michihiro,
IBM Research - Tokyo
----- Original message -----
From: "Michihiro Horie" <ho...@jp.ibm.com>
Sent by: "hotspot-compiler-dev"
<hotspot-compiler-dev-boun...@openjdk.java.net>
To: "Doerr, Martin" <martin.do...@sap.com>
Cc: "Simonis, Volker" <volker.simo...@sap.com>,
"hotspot-compiler-...@openjdk.java.net"<hotspot-compiler-...@openjdk.java.net>,
"core-libs-dev@openjdk.java.net" <core-libs-dev@openjdk.java.net>
Subject: RE: 8213754: PPC64: Add Intrinsics for
isDigit/isLowerCase/isUpperCase/isWhitespace
Date: Thu, Nov 22, 2018 11:28 AM
Hi Martin,
Yes, we should wait for the feedback on class library change.
>Btw. I think you can further simplify the code in library_call.cpp
(no phi). But we can discuss details when thedirection regarding the
java classes is clear.
Thank you for pointing out it, I think I understand how to simplify
code.
>Hi Michi,
>
>On 11/20/2018 02:52 PM, Michihiro Horie wrote:
>> >Please note that we don’t have a machine, yet. So other people
will have to test.
>> I think Gustavo can help testing this change when its' ready.
>Sure :)
>
>Best regards,
>Gustavo
Thank you, Gustavo.
Best regards,
--
Michihiro,
IBM Research - Tokyo
Inactive hide details for "Doerr, Martin" ---2018/11/22 01:33:34---Hi
Michihiro, thanks. This proposal makes the javacode much"Doerr,
Martin" ---2018/11/22 01:33:34---Hi Michihiro, thanks. This proposal
makes the java code much moreintrinsics friendly.
From: "Doerr, Martin" <martin.do...@sap.com>
To: Michihiro Horie <ho...@jp.ibm.com>,
"core-libs-dev@openjdk.java.net" <core-libs-dev@openjdk.java.net>
Cc: "hotspot-compiler-...@openjdk.java.net"
<hotspot-compiler-...@openjdk.java.net>, "Simonis,
Volker"<volker.simo...@sap.com>, Gustavo Romero
<grom...@linux.vnet.ibm.com>
Date: 2018/11/22 01:33
Subject: RE: 8213754: PPC64: Add Intrinsics for
isDigit/isLowerCase/isUpperCase/isWhitespace
------------------------------------------------------------------------------------------------------------------------
Hi Michihiro,
thanks. This proposal makes the java code much more intrinsics friendly.
We should wait for feedback from the core lib folks. Maybe they have
some requirements or other proposals.
I think these intrinsics should be interesting for Oracle, Intel and
others, too.
Btw. I think you can further simplify the code in library_call.cpp
(no phi). But we can discuss details when thedirection regarding the
java classes is clear.
Best regards,
Martin
*
**From:*Michihiro Horie <ho...@jp.ibm.com>*
**Sent:*Mittwoch, 21. November 2018 17:14*
**To:*core-libs-dev@openjdk.java.net; Doerr, Martin
<martin.do...@sap.com>*
**Cc:*hotspot-compiler-...@openjdk.java.net; Simonis, Volker
<volker.simo...@sap.com>; Gustavo Romero<grom...@linux.vnet.ibm.com>*
**Subject:*RE: 8213754: PPC64: Add Intrinsics for
isDigit/isLowerCase/isUpperCase/isWhitespace
Hi Martin,
I send this RFR to core-libs-dev too, because it changes the class
library.
Through trial and error, I separated Latin1 block as in the _
__http://cr.openjdk.java.net/~mhorie/8213754/webrev.01_
<http://cr.openjdk.java.net/%7Emhorie/8213754/webrev.01>_/_
I followed the coding way of Character.isWhitespace() that invokes
each ChracterData’s isWhitespace() to refactorisDigit(),
isLowerCase(), and isUpperCase().
I think this change is also useful on x86, using STTNI.
Best regards,
--
Michihiro,
IBM Research - Tokyo
----- Original message -----
From: "Michihiro Horie" <_ho...@jp.ibm.com_ <mailto:ho...@jp.ibm.com>>
Sent by: "hotspot-compiler-dev"
<_hotspot-compiler-dev-boun...@openjdk.java.net_<mailto:hotspot-compiler-dev-boun...@openjdk.java.net>>
To: "Doerr, Martin" <_martin.doerr@sap.com_
<mailto:martin.do...@sap.com>>
Cc: "Simonis, Volker" <_volker.simonis@sap.com_
<mailto:volker.simo...@sap.com>>,
"_ppc-aix-port-...@openjdk.java.net_<mailto:ppc-aix-port-...@openjdk.java.net>"
<_ppc-aix-port-...@openjdk.java.net_<mailto:ppc-aix-port-...@openjdk.java.net>>,
"_hotspot-compiler-...@openjdk.java.net_<mailto:hotspot-compiler-...@openjdk.java.net>"
<_hotspot-compiler-...@openjdk.java.net_<mailto:hotspot-compiler-...@openjdk.java.net>>
Subject: RE: 8213754: PPC64: Add Intrinsics for
isDigit/isLowerCase/isUpperCase/isWhitespace
Date: Wed, Nov 21, 2018 1:53 AM
Hi Martin,
Thank you for giving your helpful comments. I did not recognize
“generate_method_call_static” prevents anyoptimizations, but I now
checked it actually degraded the performance, thanks.
>Please note that we don’t have a machine, yet. So other people will
have to test.
I think Gustavo can help testing this change when its' ready.
>Would it be possible to introduce more fine-grained intrinsics such
that the “slow” path is outside of them?
>
>Maybe you can factor out as in the following example?
>if (latin1) return isLatin1Digit(codePoint);
>with isLatin1Digit as HotSpotIntrinsicCandidate.
Thanks for an example, please let me try to separate the Latin block
from other blocks for some time.
Best regards,
--
Michihiro,
IBM Research - Tokyo
Inactive hide details for "Doerr, Martin" ---2018/11/20 01:55:27---Hi
Michihiro, first of all, thanks for working onPower9 opt"Doerr,
Martin" ---2018/11/20 01:55:27---Hi Michihiro, first of all, thanks
for working on Power9optimizations. Please note that we don't ha
From: "Doerr, Martin" <_martin.doerr@sap.com_
<mailto:martin.do...@sap.com>>
To: Michihiro Horie <_ho...@jp.ibm.com_ <mailto:ho...@jp.ibm.com>>,
"_hotspot-compiler-...@openjdk.java.net_<mailto:hotspot-compiler-...@openjdk.java.net>"
<_hotspot-compiler-...@openjdk.java.net_<mailto:hotspot-compiler-...@openjdk.java.net>>,
"_ppc-aix-port-...@openjdk.java.net_<mailto:ppc-aix-port-...@openjdk.java.net>"
<_ppc-aix-port-...@openjdk.java.net_
<mailto:ppc-aix-port-...@openjdk.java.net>>
Cc: "Simonis, Volker" <_volker.simonis@sap.com_
<mailto:volker.simo...@sap.com>>, "Lindenmaier,
Goetz"<_goetz.lindenmaier@sap.com_
<mailto:goetz.lindenma...@sap.com>>, Gustavo Romero
<_grom...@linux.vnet.ibm.com_<mailto:grom...@linux.vnet.ibm.com>>
Date: 2018/11/20 01:55
Subject: RE: 8213754: PPC64: Add Intrinsics for
isDigit/isLowerCase/isUpperCase/isWhitespace
------------------------------------------------------------------------------------------------------------------------
Hi Michihiro,
first of all, thanks for working on Power9 optimizations. Please note
that we don’t have a machine, yet. So other peoplewill have to test.
I think it may be problematic to insert a slow path by
“generate_method_call_static”. This may be a performancedisadvantage
for some users of other encodings because your intrinsics prevent
inlining and further optimizations.
Would it be possible to introduce more fine-grained intrinsics such
that the “slow” path is outside of them?
Maybe you can factor out as in the following example?
if (latin1) return isLatin1Digit(codePoint);
with isLatin1Digit as HotSpotIntrinsicCandidate.
I can’t judge if this is needed, but I think this should be discussed
first before going into the details.
Best regards,
Martin
*
**From:*Michihiro Horie <_ho...@jp.ibm.com_ <mailto:ho...@jp.ibm.com>>*
**Sent:*Freitag, 16. November 2018 12:53*
**To:*_hotspot-compiler-...@openjdk.java.net_
<mailto:hotspot-compiler-...@openjdk.java.net>;_ppc-aix-port-...@openjdk.java.net_
<mailto:ppc-aix-port-...@openjdk.java.net>*
**Cc:*Doerr, Martin <_martin.doerr@sap.com_
<mailto:martin.do...@sap.com>>; Simonis, Volker
<_volker.simonis@sap.com_<mailto:volker.simo...@sap.com>>;
Lindenmaier, Goetz <_goetz.lindenmaier@sap.com_
<mailto:goetz.lindenma...@sap.com>>;Gustavo Romero
<_grom...@linux.vnet.ibm.com_ <mailto:grom...@linux.vnet.ibm.com>>*
**Subject:*RFR: 8213754: PPC64: Add Intrinsics for
isDigit/isLowerCase/isUpperCase/isWhitespace
Dear all,
Would you please review following change?
Bug: _https://bugs.openjdk.java.net/browse/JDK-8213754_
Webrev: _http://cr.openjdk.java.net/~mhorie/8213754/webrev.00_
<http://cr.openjdk.java.net/%7Emhorie/8213754/webrev.00>
This change includes the intrinsics of Character isDigit,
isLowerCase, isUpperCase, and isWhitespace to support theLatin1 block
using POWER9’s instructions cmprb and cmpeqb. The cmprb enables to
compare a character with 1 or 2 rangedbytes, while the cmpeqb
compares one with 1 to 8 values. Simple micro benchmark attached
showed improvements by 20-40%.
/
//(See attached file: Latin1Test.java)/
Best regards,
--
Michihiro,
IBM Research - Tokyo