RFR: 8367341: C2: apply KnownBits and unsigned bounds to And / Or operations

Emanuel Peter epeter at openjdk.org
Mon Oct 13 13:54:25 UTC 2025


On Mon, 13 Oct 2025 13:25:23 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> Hi,
>> 
>> This PR improves the implementation of `AndNode/OrNode/XorNode::Value` by taking advantages of the additional information in `TypeInt`. The implementation is pretty straightforward. A clever trick is that by analyzing the negative and positive ranges of a `TypeInt` separately, we have better info for the leading bits. I also implement gtest unit tests to verify the correctness and monotonicity of the inference functions.
>> 
>> Please take a look and leave your reviews, thanks a lot.
>
> test/hotspot/gtest/opto/test_rangeinference.cpp line 277:
> 
>> 275:     return 1732;
>> 276:   }
>> 277: }
> 
> What do the numbers mean here? I'm lost :/

Ah, this is the number of instances for a type! Makes sense. How did you get those numbers, how do we know they are right?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27618#discussion_r2426355829


More information about the hotspot-compiler-dev mailing list