On Tue, Apr 15, 2025 at 03:14:49PM +0200, Martin Jambor wrote: > In my fix for PR 119318 I put mask calculation in > ipcp_bits_lattice::meet_with_1 above a final fix to value so that all > the bits in the value which are meaningless according to mask have > value zero, which has tripped a validator in PR 119803. This patch > fixes that by moving the adjustment down. > > Even thought the fix for PR 119318 did a similar thing in > ipcp_bits_lattice::meet_with, the same is not necessary because that > code path then feeds the new value and mask to > ipcp_bits_lattice::set_to_constant which does the final adjustment > correctly.
You're right, set_to_constant handles that. > In both places, however, Jakup proposed a better way of calculating > cap_mask and so I have changed it accordingly. > > Because this fix has been really proposed by Jakub in BZ before I > managed to even run try the test-case myself, I think I can use my IPA > reviewer role to commit the patch which I plan to do later to day or > early tomorrow. > gcc/ChangeLog: > > 2025-04-15 Martin Jambor <mjam...@suse.cz> > > PR ipa/119803 > * ipa-cp.cc (ipcp_bits_lattice::meet_with_1): Move m_value adjustmed > according to m_mask below the adjustment of the latter according to > cap_mask. Optimize the calculation of cap_mask a bit. > (ipcp_bits_lattice::meet_with): Optimize the calculation of cap_mask a > bit. > > gcc/testsuite/ChangeLog: > > 2025-04-15 Martin Jambor <mjam...@suse.cz> > > PR ipa/119803 > * gcc.dg/ipa/pr119803.c: New test. > > Co-authored-by: Jakub Jelinek <ja...@redhat.com> LGTM. Jakub