RFR: 8335444: Generalize implementation of AndNode mul_ring [v3]
Christian Hagedorn
chagedorn at openjdk.org
Wed Sep 4 06:11:30 UTC 2024
On Wed, 7 Aug 2024 01:20:09 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:
>
> Check IR before macro expansion
I agree that we should keep this RFE simple. And we are just using thing that we already have. So, we could just go with the optimizations that you currently have (if you like to apply the few simple improvement suggestions, you can already do that) and follow up with future RFEs to cover more cases.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20066#issuecomment-2327996554
More information about the hotspot-compiler-dev
mailing list