RFR: 8354674: AArch64: Intrinsify Unsafe::setMemory

Andrew Haley aph at openjdk.org
Fri May 9 14:16:06 UTC 2025


This intrinsic is generally faster than the current implementation for Panama segment operations for all writes larger than about 8 bytes in size, increasing to more than 2* the performance on larger memory blocks on Graviton 2, between "panama" (C2 generated, what we use now) and "unsafe" (this intrinsic).


Benchmark                       (aligned)  (size)  Mode  Cnt     Score    Error  Units
MemorySegmentFillUnsafe.panama       true  262143  avgt   10  7295.638 ±  0.422  ns/op
MemorySegmentFillUnsafe.panama      false  262143  avgt   10  8345.300 ± 80.161  ns/op
MemorySegmentFillUnsafe.unsafe       true  262143  avgt   10  2930.594 ±  0.180  ns/op
MemorySegmentFillUnsafe.unsafe      false  262143  avgt   10  3136.828 ±  0.232  ns/op

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

Commit messages:
 - 8354674: AArch64: Intrinsify Unsafe::setMemory
 - New test
 - Cleanup
 - Fixes
 - next cut
 - First cut

Changes: https://git.openjdk.org/jdk/pull/25147/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25147&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8354674
  Stats: 99 lines in 2 files changed: 96 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/25147.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25147/head:pull/25147

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


More information about the core-libs-dev mailing list