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

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Andrew Pinski <pins...@gcc.gnu.org>:

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

commit r16-465-gf2bb7ffe84840d8f4ba6c0e5acdbbad8ca9d3603
Author: Andrew Pinski <quic_apin...@quicinc.com>
Date:   Thu Oct 17 05:18:36 2024 +0000

    Rewrite VCEs of integral types [PR116939]

    Like the patch to phiopt (r15-4033-g1f619fe25925a5f7), this adds rewriting
    of VCE to
gimple_with_undefined_signed_overflow/rewrite_to_defined_overflow.
    In the case of moving VCE of a bool from being conditional to
unconditional,
    it needs to be rewritten to not to use VCE but a normal cast. pr120122-1.c
is
    an example of where LIM needs this rewriting. The precision of the outer
type
    needs to be less then the inner one.

    This also renames gimple_with_undefined_signed_overflow to
gimple_needing_rewrite_undefined
    and rewrite_to_defined_overflow to rewrite_to_defined_unconditional as they
will be doing
    more than just handling signed overflow.

    Changes since v1:
    * v2: rename the functions.
    * v3: Add check for precision to be smaller.

    Bootstrappd and tested on x86_64-linux-gnu.

            PR tree-optimization/120122
            PR tree-optimization/116939

    gcc/ChangeLog:

            * gimple-fold.h (gimple_with_undefined_signed_overflow): Rename to
..
            (rewrite_to_defined_overflow): This.
            (gimple_needing_rewrite_undefined): Rename to ...
            (rewrite_to_defined_unconditional): this.
            * gimple-fold.cc (gimple_with_undefined_signed_overflow): Rename to
...
            (gimple_needing_rewrite_undefined): This. Return true for VCE with
integral
            types of smaller precision.
            (rewrite_to_defined_overflow): Rename to ...
            (rewrite_to_defined_unconditional): This. Handle VCE rewriting to a
cast.
            * tree-if-conv.cc:
s/gimple_with_undefined_signed_overflow/gimple_needing_rewrite_undefined/
            s/rewrite_to_defined_overflow/rewrite_to_defined_unconditional.
            * tree-scalar-evolution.cc: Likewise
            * tree-ssa-ifcombine.cc: Likewise.
            * tree-ssa-loop-im.cc: Likewise.
            * tree-ssa-loop-split.cc: Likewise.
            * tree-ssa-reassoc.cc: Likewise.

    gcc/testsuite/ChangeLog:

            * gcc.dg/torture/pr120122-1.c: New test.

    Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>

Reply via email to