RFR: 8309502: RISC-V: String.indexOf intrinsic may produce misaligned memory loads [v7]

Vladimir Kempik vkempik at openjdk.org
Tue Jun 13 12:57:38 UTC 2023


> Please review this attempt to remove misaligned loads in String.indexOf intrinsic on RISC-V
> 
> Initialy found these misaligned loads when profiling finagle-http test from renaissance suite.
> The majority of trp_lam events (about 66k per finagle-http round) came at line 706 (https://github.com/openjdk/jdk/pull/14320/files#diff-35eb1d2f1e2f0514dd46bd7fbad49ff2c87703d5a3041a6433956df00a3fe6e6L706)
> The other two produced about 100 events combined.
> Later I've found this can partially be reproduced with StringIndexOf.advancedWithMediumSub.
> Numbers on hifive before and after applying the patch:
> 
> 
> Benchmark                                                  Mode  Cnt       Score      Error  Units
> StringIndexOf.advancedWithMediumSub                        avgt   25   47031.406 ±  144.005  ns/op
> 
> 
> After:
> 
> Benchmark                                                 Mode  Cnt       Score     Error  Units
> StringIndexOf.advancedWithMediumSub                       avgt   25    4256.830 ±  23.075  ns/op
> 
> 
> Testing: tier1/tier2 is clean on hifive.

Vladimir Kempik has updated the pull request incrementally with one additional commit since the last revision:

  fix nits

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/14320/files
  - new: https://git.openjdk.org/jdk/pull/14320/files/898538f1..a7672f4d

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=14320&range=06
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=14320&range=05-06

  Stats: 1 line in 1 file changed: 0 ins; 1 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/14320.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/14320/head:pull/14320

PR: https://git.openjdk.org/jdk/pull/14320


More information about the hotspot-compiler-dev mailing list