RFR: 8335444: Generalize implementation of AndNode mul_ring [v4]

Christian Hagedorn chagedorn at openjdk.org
Fri Sep 6 13:56:46 UTC 2024


On Fri, 6 Sep 2024 04:41:24 GMT, Jasmine Karthikeyan <jkarthikeyan at openjdk.org> wrote:

>> Hi all,
>> I've written this patch which improves type calculation for bitwise-and functions. Previously, the only cases that were considered were if one of the inputs to the node were a positive constant. I've generalized this behavior, as well as added a case to better estimate the result for arbitrary ranges. Since these are very common patterns to see, this can help propagate more precise types throughout the ideal graph for a large number of methods, making other optimizations and analyses stronger. I was interested in where this patch improves types, so I ran CTW for `java_base` and `java_base_2` and printed out the differences in this gist [here](https://gist.github.com/jaskarth/b45260d81ab621656f4a55cc51cf5292). While I don't think it's particularly complicated I've also added some discussion of the mathematics below, mostly because I thought it was interesting to work through :)
>> 
>> This patch passes tier1-3 testing on my linux x64 machine. Thoughts and reviews would be very appreciated!
>
> Jasmine Karthikeyan has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Improve cases with two negative ranges, add more documentation

Thanks for the update, looks good to me! I'll give this another spinning in our testing over the weekend (will only be able to report back on Tuesday since Monday is a public holiday here).

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

Marked as reviewed by chagedorn (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/20066#pullrequestreview-2286327449


More information about the hotspot-compiler-dev mailing list