https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119318

--- Comment #15 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Jambor <jamb...@gcc.gnu.org>:

https://gcc.gnu.org/g:b4cf69503bcb32491dbd7ab63fe7f0f9fcdcca38

commit r15-9486-gb4cf69503bcb32491dbd7ab63fe7f0f9fcdcca38
Author: Martin Jambor <mjam...@suse.cz>
Date:   Tue Apr 15 15:55:34 2025 +0200

    ipa-bit-cp: Fix adjusting value according to mask (PR119803)

    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.

    In both places, however, Jakup proposed a better way of calculating
    cap_mask and so I have changed it accordingly.

    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>

Reply via email to