[aarch64-port-dev ] RFR: AARCH64: optimize string compare intrinsic
Dmitrij Pochepko
dmitrij.pochepko at bell-sw.com
Wed May 23 18:42:29 UTC 2018
Thank you for review!
On 23.05.2018 18:36, Dmitry Samersoff wrote:
> Dmitrij,
>
> Thank you for answering my questions in-person.
>
> The fix looks good to me.
>
> -Dmitry\S
>
>
> On 28.04.2018 21:29, Dmitrij Pochepko wrote:
>> Hi all,
>>
>> please review patch for 8202326: AARCH64: optimize string compare
>> intrinsic
>>
>> This patch introduces string compareTo stub, which uses large loops with
>> prefetch instructions. Stub is called for long strings and improves
>> String::compareTo up to 4 times on systems without hardware prefetching
>> (ThunderX) and up to 2 times on systems with hardware prefetching
>> (ThunderX2). Also inlined code is re-arranged with more optimal
>> pipelining, which helps in-order systems, so small strings are also
>> slightly improved.
>> There are no noticeable regressions according to benchmark results.
>>
>> I created benchmark to measure improvement:
>> http://cr.openjdk.java.net/~dpochepk/8202326/StringCompareBench.java
>>
>> Execution matrix is large and can be seen here:
>> http://cr.openjdk.java.net/~dpochepk/8202326/str_compare.xls
>>
>> Raw results are *.txt files here:
>> http://cr.openjdk.java.net/~dpochepk/8202326/
>>
>> webrev: http://cr.openjdk.java.net/~dpochepk/8202326/webrev.01/
>>
>> CR: https://bugs.openjdk.java.net/browse/JDK-8202326
>>
>> testing: I run jtreg hotspot tests: compiler/* gc/* runtime/* using
>> fastdebug build and found no new failures. I also run long "bruteforce"
>> test which checks all combinations of different character index for all
>> strings up to size 512:
>> http://cr.openjdk.java.net/~dpochepk/8202326/StrCmpTest.java
>>
>>
>> Additional note: this patch depends on zip2 instruction encoding fix:
>> JDK-8202395
>>
>> Thanks,
>>
>> Dmitrij
>>
>
More information about the aarch64-port-dev
mailing list