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

--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Andrew Pinski <[email protected]>:

https://gcc.gnu.org/g:8a6598f4a24306c8aae62c4a591d709a0d1abbc6

commit r16-4025-g8a6598f4a24306c8aae62c4a591d709a0d1abbc6
Author: Andrew Pinski <[email protected]>
Date:   Fri Sep 19 14:37:04 2025 -0700

    fab/gimple-fold: Move __builtin_constant_p folding to gimple-fold
[PR121762]

    This is the first patch in removing fold_all_builtins pass.
    We want to fold __builtin_constant_p into 0 if we know the argument can't
be
    a constant. So currently that is done in fab pass (though ranger handles it
now too).
    Instead of having fab do it we can check PROP_last_full_fold if set and set
it
    to 0 instead.

    Note for -Og, fab was the only place which did this conversion, so we need
to
    set PROP_last_full_fold for it; later on fab will be removed and isel will
do
    it instead but that is for another day.

    Also instead of going through fold_call_stmt to call
fold_builtin_constant_p,
    fold_builtin_constant_p is called directly from
gimple_fold_builtin_constant_p.
    This should speed up the compiling slight :).

    Note fab was originally added to do this transformation during the
development
    of the ssa branch.

    Bootstrapped and tested on x86_64-linux-gnu.

            PR tree-optimization/121762
    gcc/ChangeLog:

            * builtins.cc (fold_builtin_constant_p): Make non-static.
            * builtins.h (fold_builtin_constant_p): New declaration.
            * gimple-fold.cc (gimple_fold_builtin_constant_p): New function.
            (gimple_fold_builtin): Call gimple_fold_builtin_constant_p
            for BUILT_IN_CONSTANT_P.
            * tree-ssa-ccp.cc (pass_fold_builtins::execute): Set
PROP_last_full_fold
            on curr_properties. Remove handling of BUILT_IN_CONSTANT_P.

    Signed-off-by: Andrew Pinski <[email protected]>

Reply via email to