This implements the last pattern from fold_unary that covers
inputs that can come from a GIMPLE_UNARY_RHS assignment
and thus allows removal of the fold_unary dispatch from fold_stmt
and gimple_fold_stmt_to_constant_1.  Remember that to not cause
regressions it is enough to cover cases that do not need SSA
name use-def following.  Also remember that gimple_simplify
still dispatches to fold_unary for all tcc_constant operands.

The next goal is obviously to remove the GIMPLE_BINARY_RHS and
GIMPLE_TERNARY_RHS dispatches to fold_binary/ternary.

Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.

Richard.

2014-10-31  Richard Biener  <rguent...@suse.de>

        * match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
        * fold-const.c (fold_unary_loc): Remove them here.
        (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
        * gimple-fold.c (fold_gimple_assign): Remove now obsolete
        GIMPLE_UNARY_RHS case.
        (gimple_fold_stmt_to_constant_1): Likewise.

Attachment: mas-merge-10
Description: Binary data

Reply via email to