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

Quan Anh Mai qamai at openjdk.org
Thu Nov 28 16:21:18 UTC 2024


On Thu, 28 Nov 2024 16:15:57 GMT, theoweidmannoracle <duke at openjdk.org> wrote:

>> 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
>
> theoweidmannoracle has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add UDIV

test/hotspot/jtreg/compiler/c2/irTests/ModINodeIdealizationTests.java line 39:

> 37:  */
> 38: public class ModINodeIdealizationTests {
> 39:     public static final int RANDOM_POWER_OF_2 = 1 << (1 + new Random().nextInt(30));

We use `Utils.getRandomInstance()` so that tests can be replayed with the same seed.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22061#discussion_r1862451773


More information about the hotspot-compiler-dev mailing list