[jdk17u-dev] RFR: 8310268: RISC-V: misaligned memory access in String.Compare intrinsic

Vladimir Kempik vkempik at openjdk.org
Mon Oct 16 10:31:13 UTC 2023


On Fri, 13 Oct 2023 21:24:51 GMT, Olga Mikhaltsova <omikhaltcova at openjdk.org> wrote:

> I'd like to backport JDK-8310268 to jdk17u. This fix is related only to RISC-V.
> 
> The patch applies cleanly.
> 
> Testing: tier1 tests successfully passed on a RISC-V HiFive board with Linux.
> 
> As it's described in the original fix, this performance improvement can be observed by running the StringCompareToDifferentLength benchmark. The results for jdk17u are as follow:
> 
> Before
> 
> Benchmark                                   (delta)  (size)  Mode  Cnt   Score   Error  Units
> StringCompareToDifferentLength.compareToLL        2       7  avgt    9   4.703 ± 0.090  ms/op
> StringCompareToDifferentLength.compareToLL        2       8  avgt    9   4.896 ± 0.059  ms/op
> StringCompareToDifferentLength.compareToLL        2      15  avgt    9  97.280 ± 2.008  ms/op
> StringCompareToDifferentLength.compareToLL        2      24  avgt    9   3.685 ± 0.031  ms/op
> StringCompareToDifferentLength.compareToLL        2      36  avgt    9  97.924 ± 1.230  ms/op
> StringCompareToDifferentLength.compareToLU        2       7  avgt    9  85.896 ± 3.747  ms/op
> StringCompareToDifferentLength.compareToLU        2       8  avgt    9   5.095 ± 0.065  ms/op
> StringCompareToDifferentLength.compareToLU        2      15  avgt    9  87.073 ± 0.639  ms/op
> StringCompareToDifferentLength.compareToLU        2      24  avgt    9   9.631 ± 0.021  ms/op
> StringCompareToDifferentLength.compareToLU        2      36  avgt    9  13.416 ± 0.088  ms/op
> StringCompareToDifferentLength.compareToUL        2       7  avgt    9  86.940 ± 0.923  ms/op
> StringCompareToDifferentLength.compareToUL        2       8  avgt    9   7.155 ± 0.068  ms/op
> StringCompareToDifferentLength.compareToUL        2      15  avgt    9  89.326 ± 0.864  ms/op
> StringCompareToDifferentLength.compareToUL        2      24  avgt    9  11.678 ± 0.104  ms/op
> StringCompareToDifferentLength.compareToUL        2      36  avgt    9  15.966 ± 0.344  ms/op
> StringCompareToDifferentLength.compareToUU        2       7  avgt    9  97.076 ± 0.818  ms/op
> StringCompareToDifferentLength.compareToUU        2       8  avgt    9   3.625 ± 0.035  ms/op
> StringCompareToDifferentLength.compareToUU        2      15  avgt    9  97.576 ± 1.118  ms/op
> StringCompareToDifferentLength.compareToUU        2      24  avgt    9   4.825 ± 0.070  ms/op
> StringCompareToDifferentLength.compareToUU        2      36  avgt    9   6.221 ± 0.035  ms/op
> 
> After
> 
> Benchmark                                   (delta)  (size)  Mode  Cnt   Score   Error  Units
> StringCompareToDifferentLength.compareToLL      ...

Looks good, gets speed of String.Compare to expected level

-------------

Marked as reviewed by vkempik (Reviewer).

PR Review: https://git.openjdk.org/jdk17u-dev/pull/1876#pullrequestreview-1679567962


More information about the jdk-updates-dev mailing list