RFR: 8292713: Unsafe.allocateInstance should be intrinsified without UseUnalignedAccesses

Aleksey Shipilev shade at openjdk.org
Mon Aug 22 21:15:59 UTC 2022


See the rationale and references in the bug. This PR improves the selected tests very considerably, and I think it actually fixes the real performance bug in `java.lang.invoke`-rich code paths.

Raspberry Pi 4, ARM32 fastdebug build:


$ time make test TEST=java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessChar.java

# Baseline

real	4m37.970s
user	6m5.490s
sys	0m21.731s

real	4m52.363s
user	6m24.100s
sys	0m21.363s

# Patched

real	2m32.678s ; <--- 1.8x faster
user	4m33.749s
sys	0m22.127s

real	2m38.451s ; <--- 1.8x faster, reproducible
user	4m44.788s
sys	0m22.160s


HiFive Unmatched, RISC-V fastdebug build:


$ time make test TEST=java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessInt.java

# Baseline

real	19m3.479s
user	27m2.932s
sys	0m27.766s

real	18m52.351s
user	27m23.917s
sys	0m27.682s

# Patched

real	10m5.971s  ; <--- 1.9x faster
user	18m11.538s
sys	0m28.204s

real	10m18.973s ; <--- 1.9x faster, reproducible
user	18m31.067s
sys	0m28.053s


Additional testing:
 - [x] Linux RISC-V build, timing tests
 - [x] Linux ARM32 build, timing tests
 - [x] Linux ARM32 fastdebug `tier1`

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

Commit messages:
 - Fix

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

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


More information about the hotspot-compiler-dev mailing list