RFR: 8332268: C2: Add missing optimizations for UDivI/L and UModI/L and unify the shared logic with the signed nodes

theoweidmannoracle duke at openjdk.org
Wed Nov 13 12:01:23 UTC 2024


This PR introduces
- several new optimizations to unsigned division and modulo
   - x % 1, x % x, x % 2^k
   - x / 1, x / x, x / 2^k 
   - does not implement the Granlund and Montgomery algorithm, which has been implemented for signed modulo division in the past. It is unclear if a lot is to be gained by implementing this.
- tests to test existing optimizations for signed division and modulo 
   - does not test the Granlund and Montgomery algorithm directly

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

Commit messages:
 - Remove transform_unsigned_* and inline
 - Fix test comments
 - Minor fixes
 - Add 2^k-1 test
 - Fix code style
 - Move is into Type
 - Add more ModI/L tests
 - DRY unsigned div
 - Improve UModL test
 - Add long
 - ... and 6 more: https://git.openjdk.org/jdk/compare/8cb12211...117d1f41

Changes: https://git.openjdk.org/jdk/pull/22061/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22061&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8332268
  Stats: 858 lines in 11 files changed: 841 ins; 9 del; 8 mod
  Patch: https://git.openjdk.org/jdk/pull/22061.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22061/head:pull/22061

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


More information about the hotspot-compiler-dev mailing list