RFR: 8333154: RISC-V: Add support for primitive array C1 clone intrinsic
Gui Cao
gcao at openjdk.org
Wed May 29 08:28:09 UTC 2024
Implementation of primitive array C1 clone intrinsic (https://bugs.openjdk.org/browse/JDK-8333154) for linux-riscv64.
### Correctness testing:
- [x] Run `make test TEST="hotspot_compiler" JTREG="JAVA_OPTIONS=-XX:TieredStopAtLevel=1" `
- [ ] Run tier1-3 tests on SOPHON SG2042 (release)
### Performance testing:
Without Patch:
make test TEST="micro:java.lang.ArrayClone" MICRO="JAVA_OPTIONS=-XX:TieredStopAtLevel=1"
Benchmark (size) Mode Cnt Score Error Units
ArrayClone.byteArraycopy 0 avgt 15 90.089 ± 7.122 ns/op
ArrayClone.byteArraycopy 10 avgt 15 146.000 ± 11.761 ns/op
ArrayClone.byteArraycopy 100 avgt 15 289.382 ± 23.903 ns/op
ArrayClone.byteArraycopy 1000 avgt 15 767.864 ± 56.721 ns/op
ArrayClone.byteClone 0 avgt 15 735.692 ± 26.641 ns/op
ArrayClone.byteClone 10 avgt 15 810.810 ± 34.563 ns/op
ArrayClone.byteClone 100 avgt 15 1055.917 ± 93.574 ns/op
ArrayClone.byteClone 1000 avgt 15 1564.465 ± 140.941 ns/op
ArrayClone.intArraycopy 0 avgt 15 93.732 ± 8.468 ns/op
ArrayClone.intArraycopy 10 avgt 15 214.168 ± 34.526 ns/op
ArrayClone.intArraycopy 100 avgt 15 613.363 ± 45.415 ns/op
ArrayClone.intArraycopy 1000 avgt 15 1759.611 ± 59.010 ns/op
ArrayClone.intClone 0 avgt 15 680.100 ± 24.375 ns/op
ArrayClone.intClone 10 avgt 15 835.979 ± 75.154 ns/op
ArrayClone.intClone 100 avgt 15 1337.354 ± 86.182 ns/op
ArrayClone.intClone 1000 avgt 15 2696.280 ± 207.418 ns/op
Finished running test 'micro:java.lang.ArrayClone'
With Patch:
make test TEST="micro:java.lang.ArrayClone" MICRO="JAVA_OPTIONS=-XX:TieredStopAtLevel=1"
Benchmark (size) Mode Cnt Score Error Units
ArrayClone.byteArraycopy 0 avgt 15 89.410 ± 5.112 ns/op
ArrayClone.byteArraycopy 10 avgt 15 141.125 ± 8.711 ns/op
ArrayClone.byteArraycopy 100 avgt 15 277.098 ± 12.925 ns/op
ArrayClone.byteArraycopy 1000 avgt 15 770.188 ± 83.034 ns/op
ArrayClone.byteClone 0 avgt 15 94.367 ± 7.088 ns/op
ArrayClone.byteClone 10 avgt 15 151.804 ± 16.497 ns/op
ArrayClone.byteClone 100 avgt 15 296.284 ± 17.893 ns/op
ArrayClone.byteClone 1000 avgt 15 790.517 ± 28.765 ns/op
ArrayClone.intArraycopy 0 avgt 15 93.688 ± 7.050 ns/op
ArrayClone.intArraycopy 10 avgt 15 213.070 ± 12.299 ns/op
ArrayClone.intArraycopy 100 avgt 15 610.022 ± 57.880 ns/op
ArrayClone.intArraycopy 1000 avgt 15 1774.649 ± 89.373 ns/op
ArrayClone.intClone 0 avgt 15 96.396 ± 7.751 ns/op
ArrayClone.intClone 10 avgt 15 216.224 ± 19.219 ns/op
ArrayClone.intClone 100 avgt 15 585.263 ± 31.196 ns/op
ArrayClone.intClone 1000 avgt 15 1559.673 ± 108.939 ns/op
Finished running test 'micro:java.lang.ArrayClone'
-------------
Commit messages:
- 8333154: RISC-V: Add support for primitive array C1 clone intrinsic
Changes: https://git.openjdk.org/jdk/pull/19448/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19448&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8333154
Stats: 31 lines in 7 files changed: 21 ins; 0 del; 10 mod
Patch: https://git.openjdk.org/jdk/pull/19448.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19448/head:pull/19448
PR: https://git.openjdk.org/jdk/pull/19448
More information about the hotspot-compiler-dev
mailing list