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" <[email protected]>
Sent by: "hotspot-compiler-dev" <[email protected]>
To: "Doerr, Martin" <[email protected]>
Cc: "Simonis, Volker" <[email protected]>, "[email protected]"
<[email protected]>, "[email protected]" <[email protected]>
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 the
direction 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 java
code much"Doerr, Martin" ---2018/11/22 01:33:34---Hi Michihiro, thanks. This proposal makes the java code much more
intrinsics friendly.
From: "Doerr, Martin" <[email protected]>
To: Michihiro Horie <[email protected]>, "[email protected]"
<[email protected]>
Cc: "[email protected]" <[email protected]>, "Simonis, Volker"
<[email protected]>, Gustavo Romero <[email protected]>
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 the
direction regarding the java classes is clear.
Best regards,
Martin
*
**From:*Michihiro Horie <[email protected]>*
**Sent:*Mittwoch, 21. November 2018 17:14*
**To:*[email protected]; Doerr, Martin <[email protected]>*
**Cc:*[email protected]; Simonis, Volker <[email protected]>; Gustavo Romero
<[email protected]>*
**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 refactor
isDigit(), 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" <[email protected]_ <mailto:[email protected]>>
Sent by: "hotspot-compiler-dev" <[email protected]_
<mailto:[email protected]>>
To: "Doerr, Martin" <[email protected]_ <mailto:[email protected]>>
Cc: "Simonis, Volker" <[email protected]_ <mailto:[email protected]>>, "[email protected]_
<mailto:[email protected]>" <[email protected]_
<mailto:[email protected]>>, "[email protected]_
<mailto:[email protected]>" <[email protected]_
<mailto:[email protected]>>
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 any
optimizations, 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 on
Power9 opt"Doerr, Martin" ---2018/11/20 01:55:27---Hi Michihiro, first of all, thanks for working on Power9
optimizations. Please note that we don't ha
From: "Doerr, Martin" <[email protected]_ <mailto:[email protected]>>
To: Michihiro Horie <[email protected]_ <mailto:[email protected]>>, "[email protected]_
<mailto:[email protected]>" <[email protected]_
<mailto:[email protected]>>, "[email protected]_
<mailto:[email protected]>" <[email protected]_ <mailto:[email protected]>>
Cc: "Simonis, Volker" <[email protected]_ <mailto:[email protected]>>, "Lindenmaier, Goetz"
<[email protected]_ <mailto:[email protected]>>, Gustavo Romero <[email protected]_
<mailto:[email protected]>>
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 people
will have to test.
I think it may be problematic to insert a slow path by “generate_method_call_static”. This may be a performance
disadvantage 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 <[email protected]_ <mailto:[email protected]>>*
**Sent:*Freitag, 16. November 2018 12:53*
**To:*[email protected]_ <mailto:[email protected]>;
[email protected]_ <mailto:[email protected]>*
**Cc:*Doerr, Martin <[email protected]_ <mailto:[email protected]>>; Simonis, Volker <[email protected]_
<mailto:[email protected]>>; Lindenmaier, Goetz <[email protected]_ <mailto:[email protected]>>;
Gustavo Romero <[email protected]_ <mailto:[email protected]>>*
**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 the
Latin1 block using POWER9’s instructions cmprb and cmpeqb. The cmprb enables to compare a character with 1 or 2 ranged
bytes, 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