RFR(L) 8149655: PPC64: Implement CompactString intrinsics

Doerr, Martin martin.doerr at sap.com
Fri Feb 19 10:37:34 UTC 2016

Hi Götz,

thanks for the review. I basically used small micro-benchmarks and tests and later our nightly tests which I have extended a little bit with this change. There were some match rules which I only hit with the change I made in TestStringIntrinsics2.

I think you're right. The addition to the predicate for string_indexOf_imm1_charNode should not be needed because the AddP node for the immediate needle gets matched with the StrIndexOfNode.
I have removed it again from this node and from the new nodes which match indexOf_imm1_char in the 3 different flavors.

Spaces before comma are also fixed.

The guarantee(needlecntval != 1, ...) is not new. It was already there in the non-CompactStrings version. string_indexof wouldn't generate correct code. There's a separate match rule for that case.

New webrev is here:

Best regards,

From: Lindenmaier, Goetz
Sent: Donnerstag, 18. Februar 2016 20:50
To: Doerr, Martin <martin.doerr at sap.com>; hotspot-compiler-dev at openjdk.java.net
Subject: RE: RFR(L) 8149655: PPC64: Implement CompactString intrinsics

Hi Martin,

I finally had a look at this change.  Good work!

What did you test this with,  besides our hs-comp nighttests, which
already is quite a lot?

I saw you added more conditions to the predicate of  string_indexOf_imm1_char() etc.
Isn't this obvious because needleImm is an immP?

if (stride1 == 1) { lbz(chr1, 0, str1); } else { lhz(chr1, 0 ,str1); }
Space before comma.  There are more of these, search for '0 ,'
guarantee(needlecntval != 1,
not indented ... or is this on purpose?

Best regards,

From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Doerr, Martin
Sent: Thursday, February 11, 2016 4:11 PM
To: hotspot-compiler-dev at openjdk.java.net<mailto:hotspot-compiler-dev at openjdk.java.net>
Subject: RFR(L) 8149655: PPC64: Implement CompactString intrinsics


I have created a webrev which adds the following String intrinsics to PPC64:
0 string_compareL
1 string_compareU
2 string_compareLU
3 string_compareUL
4 string_equalsL
5 string_equalsU
6 array_equalsB
7 array_equalsC
8 indexOf_imm1_char_U
9 indexOf_imm1_char_L
10 indexOf_imm1_char_UL
11 indexOf_imm1_U
12 indexOf_imm1_L
13 indexOf_imm1_UL
14 indexOfChar_U
15 indexOf_imm_U
16 indexOf_imm_L
17 indexOf_imm_UL
18 indexOf_U
19 indexOf_L
20 indexOf_UL
21 string_compress
22 string_inflate
23 has_negatives
24 encode_iso_array

It also contains some other minor improvements.

The webrev is here:

Please review.

I will also need a sponsor from Oracle because the change touches one java test file (test/compiler/intrinsics/string/TestStringIntrinsics2.java).

Best regards,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160219/88ba7b34/attachment.html>

More information about the hotspot-compiler-dev mailing list