RFR: 8331907: BigInteger and BigDecimal should use optimized division

Daniel JeliƄski djelinski at openjdk.org
Wed May 8 08:32:22 UTC 2024


Replace the custom unsigned divide / remainder functions with the compiler-optimized Long.divideUnsigned / remainderUnsigned.

No new tests. Existing tier1-3 tests continue to pass.

I added a new set of divide benchmarks. Results in thread.

I also removed the BigDecimal.toString benchmarks. They no longer serve their purpose - toString caches the returned value, so we were only benchmarking the cache access time.

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

Commit messages:
 - Fix whitespace
 - Remove useless toString benchmarks
 - Update copyright
 - Remove redundant benchmarks
 - Use unsigned ops in BigDecimal
 - Simplify logic
 - Use divide/remainderUnsigned
 - Add BigInteger.divide microbenchmark

Changes: https://git.openjdk.org/jdk/pull/19134/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19134&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8331907
  Stats: 212 lines in 4 files changed: 39 ins; 132 del; 41 mod
  Patch: https://git.openjdk.org/jdk/pull/19134.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19134/head:pull/19134

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


More information about the core-libs-dev mailing list