RFR: 8351140: RISC-V: Intrinsify Unsafe::setMemory [v3]

Anjian-Wen duke at openjdk.org
Wed Apr 30 06:36:30 UTC 2025


> From [JDK-8329331](https://bugs.openjdk.org/browse/JDK-8329331), add riscv unsafe::setMemory intrinsic’s generator generate_unsafe_setmemory. This intrinsic optimizes about quite a lot unsafe setmemory time
> 
> on my musebook, the JMH test micro:java.lang.foreign.MemorySegmentZeroUnsafe shows below
> 
> before the patch
> `Benchmark                       (aligned)  (size)  Mode  Cnt   Score   Error  Units
> MemorySegmentZeroUnsafe.panama       true       1  avgt   30   24.198 ± 0.392  ns/op
> MemorySegmentZeroUnsafe.panama       true       2  avgt   30   20.688 ± 0.013  ns/op
> MemorySegmentZeroUnsafe.panama       true       3  avgt   30   20.703 ± 0.045  ns/op
> MemorySegmentZeroUnsafe.panama       true       4  avgt   30   20.053 ± 0.016  ns/op
> MemorySegmentZeroUnsafe.panama       true       5  avgt   30   20.682 ± 0.016  ns/op
> MemorySegmentZeroUnsafe.panama       true       6  avgt   30   20.732 ± 0.061  ns/op
> MemorySegmentZeroUnsafe.panama       true       7  avgt   30   21.403 ± 0.096  ns/op
> MemorySegmentZeroUnsafe.panama       true       8  avgt   30   25.268 ± 0.197  ns/op
> MemorySegmentZeroUnsafe.panama       true      15  avgt   30   27.481 ± 0.195  ns/op
> MemorySegmentZeroUnsafe.panama       true      16  avgt   30   27.577 ± 0.019  ns/op
> MemorySegmentZeroUnsafe.panama       true      63  avgt   30  208.893 ± 2.795  ns/op
> MemorySegmentZeroUnsafe.panama       true      64  avgt   30  199.167 ± 0.936  ns/op
> MemorySegmentZeroUnsafe.panama       true     255  avgt   30  220.672 ± 0.879  ns/op
> MemorySegmentZeroUnsafe.panama       true     256  avgt   30  246.256 ± 0.756  ns/op
> MemorySegmentZeroUnsafe.panama      false       1  avgt   30   23.849 ± 0.088  ns/op
> MemorySegmentZeroUnsafe.panama      false       2  avgt   30   20.671 ± 0.006  ns/op
> MemorySegmentZeroUnsafe.panama      false       3  avgt   30   20.694 ± 0.037  ns/op
> MemorySegmentZeroUnsafe.panama      false       4  avgt   30   20.048 ± 0.010  ns/op
> MemorySegmentZeroUnsafe.panama      false       5  avgt   30   20.684 ± 0.020  ns/op
> MemorySegmentZeroUnsafe.panama      false       6  avgt   30   20.685 ± 0.016  ns/op
> MemorySegmentZeroUnsafe.panama      false       7  avgt   30   21.383 ± 0.086  ns/op
> MemorySegmentZeroUnsafe.panama      false       8  avgt   30   25.684 ± 0.006  ns/op
> MemorySegmentZeroUnsafe.panama      false      15  avgt   30   27.593 ± 0.043  ns/op
> MemorySegmentZeroUnsafe.panama      false      16  avgt   30   28.437 ± 0.228  ns/op
> MemorySegmentZeroUnsafe.panama      false      63  avgt   30...

Anjian-Wen has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains six commits:

 - delete useless label
 - fix label jump
 - Merge branch 'openjdk:master' into temp_test_unsafe
 - fix address alignment at tail
 - modify loop logic to generate_fill and add unsafe mark
 - RISC-V: Intrinsify Unsafe::setMemory

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

Changes: https://git.openjdk.org/jdk/pull/23890/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23890&range=02
  Stats: 116 lines in 1 file changed: 116 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/23890.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23890/head:pull/23890

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


More information about the hotspot-compiler-dev mailing list