8213754: PPC64: Add Intrinsics for isDigit/isLowerCase/isUpperCase/isWhitespace
martin.doerr at sap.com
Mon Nov 19 16:47:28 UTC 2018
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.
From: Michihiro Horie <HORIE at jp.ibm.com>
Sent: Freitag, 16. November 2018 12:53
To: hotspot-compiler-dev at openjdk.java.net; ppc-aix-port-dev at openjdk.java.net
Cc: Doerr, Martin <martin.doerr at sap.com>; Simonis, Volker <volker.simonis at sap.com>; Lindenmaier, Goetz <goetz.lindenmaier at sap.com>; Gustavo Romero <gromero at linux.vnet.ibm.com>
Subject: RFR: 8213754: PPC64: Add Intrinsics for isDigit/isLowerCase/isUpperCase/isWhitespace
Would you please review following change?
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)
IBM Research - Tokyo
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the hotspot-compiler-dev