RFR: 8331558: AArch64: optimize integer remainder [v2]

Jin Guojie duke at openjdk.org
Mon May 6 05:50:13 UTC 2024


> 8331558: AArch64: optimize integer remainder
>     On some Arm processors, a separate multiply/subtract is actually faster than the combined instruction.
> 
> 8331556: AArch64: CPU_Model support for Neoverse N1/N2/V1/V2
>     Add full platform coverage for Neoverse variants in vm_version.?pp
> 
> The following test has passed, which shows definite performance improvement.
> 
> make test TEST="micro:java.lang.IntegerDivMod"
> make test TEST="micro:java.lang.LongDivMod"
> 
> * IntegerDivMod.testDivideRemainderUnsigned
> baseline(ns/ops)                2223
> with this pacth(ns/ops)         1885    
> improvement(%)                  17.93%
> 
> * IntegerDivMod.testRemainderUnsigned
> baseline(ns/ops)                2225
> with this pacth(ns/ops)         1885    
> improvement(%)                  18.03%
> 
> * LongDivMod.testDivideRemainderUnsigned
> baseline(ns/ops)                2231
> with this pacth(ns/ops)         1894    
> improvement(%)                  17.79%
> 
> * LongDivMod.testRemainderUnsigned
> baseline(ns/ops)                2232
> with this pacth(ns/ops)         1891
> improvement(%)                  18.03%

Jin Guojie has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:

 - Merge branch 'openjdk:master' into dev
 - Update vm_version_aarch64.hpp
 - 8331558: AArch64: optimize integer remainder
   
   On some Arm processors, a separate multiply/subtract is actually faster than the combined instruction.
 - 8331556: AArch64: CPU_Model support for Neoverse N1/N2/V1/V2
   
   Add full platform coverage for Neoverse variants in vm_version.?pp

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/19093/files
  - new: https://git.openjdk.org/jdk/pull/19093/files/226f7832..786d5016

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=19093&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=19093&range=00-01

  Stats: 6731 lines in 285 files changed: 3391 ins; 1390 del; 1950 mod
  Patch: https://git.openjdk.org/jdk/pull/19093.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19093/head:pull/19093

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


More information about the hotspot-dev mailing list