Hi Vivek!
I think you don't need this if block:
464 if (a[aFromIndex] != b[bFromIndex]) {
465 i = 0;
466 }
i is already 0 anyway, and the following line is just enough.
467 if (a[aFromIndex] == b[bFromIndex]) {
The same applies to other float/double variants.
With kind regards,
Ivan
On 6/20/18 5:05 PM, Deshpande, Vivek R wrote:
Hi Paul
I have made the change you have suggested.
Please find the updated webrev at this location:
http://cr.openjdk.java.net/~vdeshpande/vectorizedMismatch_jdk/webrev.02/
Regards,
Vivek
From: Paul Sandoz [mailto:[email protected]]
Sent: Wednesday, June 20, 2018 2:30 PM
To: Deshpande, Vivek R <[email protected]>
Cc: [email protected]; David Holmes <[email protected]>;
[email protected]; Viswanathan, Sandhya <[email protected]>
Subject: Re: RFR(S): 8205194: Improve the Array Comparison when there is a
mismatch at first element.
459 public static int mismatch(float[] a, int aFromIndex,
460 float[] b, int bFromIndex,
461 int length) {
462 int i = 0;
463 if (length > 1) {
464 if (a[aFromIndex] != b[bFromIndex]) {
465 i = 0;
466 } else {
You fold the if/else to;
if (a[aFromIndex] == b[bFromIndex]) {
…
}
same applies in other cases in both source files.
On Jun 20, 2018, at 1:21 PM, Deshpande, Vivek R
<[email protected]<mailto:[email protected]>> wrote:
Hi All
I have updated the webrev with all the suggestions, which passes
ArraysEqCmpTest.java.
Earlier webrev failed the same test.
Thanks for confirming.
This webrev also modifies the BufferMismatch.java in similar way.
Great!
Paul.
Please take a look and let me know what you think.
Updated webrev is here:
http://cr.openjdk.java.net/~vdeshpande/vectorizedMismatch_jdk/webrev.01/
I have also modified the bug with updated webrev.
Regards,
Vivek
From: Deshpande, Vivek R
Sent: Tuesday, June 19, 2018 10:57 AM
To: Paul Sandoz <[email protected]<mailto:[email protected]>>;
[email protected]<mailto:[email protected]>
Cc: David Holmes <[email protected]<mailto:[email protected]>>;
[email protected]<mailto:[email protected]>; Viswanathan, Sandhya
<[email protected]<mailto:[email protected]>>
Subject: RE: RFR(S): 8205194: Improve the Array Comparison when there is a
mismatch at first element.
Hi Roger
I will also test with zero length arrays and let you know.
Thanks for the input.
Regards,
Vivek
From: Deshpande, Vivek R
Sent: Tuesday, June 19, 2018 10:17 AM
To: 'Paul Sandoz' <[email protected]<mailto:[email protected]>>
Cc: David Holmes <[email protected]<mailto:[email protected]>>;
[email protected]<mailto:[email protected]>; Viswanathan, Sandhya
<[email protected]<mailto:[email protected]>>
Subject: RE: RFR(S): 8205194: Improve the Array Comparison when there is a
mismatch at first element.
Thanks Paul for quick review. I will work on the things you have mentioned and
get back soon.
I will also test this with test/jdk/java/util/Arrays/ArraysEqCmpTest.java.
Regards,
Vivek
From: Paul Sandoz [mailto:[email protected]]
Sent: Tuesday, June 19, 2018 9:55 AM
To: Deshpande, Vivek R
<[email protected]<mailto:[email protected]>>
Cc: David Holmes <[email protected]<mailto:[email protected]>>;
[email protected]<mailto:[email protected]>; Viswanathan, Sandhya
<[email protected]<mailto:[email protected]>>
Subject: Re: RFR(S): 8205194: Improve the Array Comparison when there is a
mismatch at first element.
Hi Vivek,
Thanks for investigating this.
164 public static int mismatch(boolean[] a,
165 boolean[] b,
166 int length) {
167 int i = 0;
168 if (a[i] != b[i])
169 return i;
You might as well replace the use if i with 0 and i think you can move this to
be performed when the length is greater than the threshold, that way you don’t
impact small arrays below the threshold.
186 public static int mismatch(boolean[] a, int aFromIndex,
187 boolean[] b, int bFromIndex,
188 int length) {
189 int i = 0;
190 if (a[i] != b[i])
191 return i;
This is incorrect. You need to use aFromIndex and bFromIndex.
Do you run the test test/jdk/java/util/Arrays/ArraysEqCmpTest.java? If that
passed then we need to strengthen for the case of a mismatch on the first
relative element in each array.
Paul.
On Jun 19, 2018, at 9:36 AM, Deshpande, Vivek R
<[email protected]<mailto:[email protected]>> wrote:
Thanks David.
Sending it to core-libs-dev.
I would like to contribute a patch which improves the array comparison when
there is a mismatch for the first element.
This avoids call to vectorizedMismatch method and gives ~80x speed up.
Could you please review and sponsor the patch.
Link to bug:
https://bugs.openjdk.java.net/browse/JDK-8205194
webrev:
http://cr.openjdk.java.net/~vdeshpande/vectorizedMismatch_jdk/webrev.00/
Regards,
Vivek
-----Original Message-----
From: David Holmes [mailto:[email protected]]
Sent: Monday, June 18, 2018 10:32 PM
To: Deshpande, Vivek R
<[email protected]<mailto:[email protected]>>;
[email protected]<mailto:[email protected]>
Subject: Re: RFR(S): 8205194: Improve the Array Comparison when there is a
mismatch at first element.
Hi Vivek,
Reviews should take place on the appropriate mailing list for the code being
changed, not on the jdk-dev list. Please takes this to core-libs-dev.
Thanks,
David
On 19/06/2018 9:52 AM, Deshpande, Vivek R wrote:
Hi All
Forgot to add the links:
https://bugs.openjdk.java.net/browse/JDK-8205194
webrev:
http://cr.openjdk.java.net/~vdeshpande/vectorizedMismatch_jdk/webrev.0
0/
Regards.
Vivek
From: Deshpande, Vivek R
Sent: Monday, June 18, 2018 4:50 PM
To: '[email protected]<mailto:[email protected]>'
<[email protected]<mailto:[email protected]>>
Cc: 'Paul Sandoz' <[email protected]<mailto:[email protected]>>;
Viswanathan, Sandhya
<[email protected]<mailto:[email protected]>>
Subject: RFR(S): 8205194: Improve the Array Comparison when there is a mismatch
at first element.
Hi All
I would like to contribute a patch which improves the array comparison when
there is a mismatch for the first element.
This avoids call to vectorizedMismatch method and gives ~80x speed up.
Please review and sponsor the patch.
Regards,
Vivek
--
With kind regards,
Ivan Gerasimov