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

Reply via email to