Since r13-707-g68e0063397ba82 COND_EXPR in gimple assign does not have a special case for COND_EXPR and conditional as the first operand. This removes the code from tree-ssa-math-opts.cc which was for that special case.
Bootstrapped and tested on x86_64-linux-gnu. PR tree-optimization/120477 gcc/ChangeLog: * tree-ssa-math-opts.cc (maybe_optimize_guarding_check): Remove special case for COND_EXPR. (arith_overflow_check_p): Likewise. (match_arith_overflow): Likewise, changing into a gcc_unreachable. Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com> --- gcc/tree-ssa-math-opts.cc | 58 ++------------------------------------- 1 file changed, 3 insertions(+), 55 deletions(-) diff --git a/gcc/tree-ssa-math-opts.cc b/gcc/tree-ssa-math-opts.cc index 7e819f37446..d5f18540ffd 100644 --- a/gcc/tree-ssa-math-opts.cc +++ b/gcc/tree-ssa-math-opts.cc @@ -3775,20 +3775,7 @@ maybe_optimize_guarding_check (vec<gimple *> &mul_stmts, gimple *cond_stmt, if (gimple_phi_arg_def (phi, succ_edge->dest_idx) != lhs) return; tree other_val = gimple_phi_arg_def (phi, other_edge->dest_idx); - if (gimple_assign_rhs_code (cond_stmt) == COND_EXPR) - { - tree cond = gimple_assign_rhs1 (cond_stmt); - if (TREE_CODE (cond) == NE_EXPR) - { - if (!operand_equal_p (other_val, - gimple_assign_rhs3 (cond_stmt), 0)) - return; - } - else if (!operand_equal_p (other_val, - gimple_assign_rhs2 (cond_stmt), 0)) - return; - } - else if (gimple_assign_rhs_code (cond_stmt) == NE_EXPR) + if (gimple_assign_rhs_code (cond_stmt) == NE_EXPR) { if (!integer_zerop (other_val)) return; @@ -3903,18 +3890,6 @@ arith_overflow_check_p (gimple *stmt, gimple *cast_stmt, gimple *&use_stmt, crhs1 = gimple_assign_rhs1 (cur_use_stmt); crhs2 = gimple_assign_rhs2 (cur_use_stmt); } - else if (gimple_assign_rhs_code (cur_use_stmt) == COND_EXPR) - { - tree cond = gimple_assign_rhs1 (cur_use_stmt); - if (COMPARISON_CLASS_P (cond)) - { - ccode = TREE_CODE (cond); - crhs1 = TREE_OPERAND (cond, 0); - crhs2 = TREE_OPERAND (cond, 1); - } - else - return 0; - } else return 0; } @@ -3947,18 +3922,6 @@ arith_overflow_check_p (gimple *stmt, gimple *cast_stmt, gimple *&use_stmt, crhs1 = gimple_assign_rhs1 (cur_use_stmt); crhs2 = gimple_assign_rhs2 (cur_use_stmt); } - else if (gimple_assign_rhs_code (cur_use_stmt) == COND_EXPR) - { - tree cond = gimple_assign_rhs1 (cur_use_stmt); - if (COMPARISON_CLASS_P (cond)) - { - ccode = TREE_CODE (cond); - crhs1 = TREE_OPERAND (cond, 0); - crhs2 = TREE_OPERAND (cond, 1); - } - else - return 0; - } else { enum tree_code sc = gimple_assign_rhs_code (cur_use_stmt); @@ -4827,15 +4790,7 @@ match_arith_overflow (gimple_stmt_iterator *gsi, gimple *stmt, else if (gimple_assign_cast_p (use_stmt)) gimple_assign_set_rhs1 (use_stmt, ovf); else - { - tree_code sc = gimple_assign_rhs_code (use_stmt); - gcc_checking_assert (sc == COND_EXPR); - tree cond = gimple_assign_rhs1 (use_stmt); - cond = build2 (TREE_CODE (cond), - boolean_type_node, ovf, - build_int_cst (type, 0)); - gimple_assign_set_rhs1 (use_stmt, cond); - } + gcc_unreachable(); } update_stmt (use_stmt); gsi_remove (&gsiu, true); @@ -4853,14 +4808,7 @@ match_arith_overflow (gimple_stmt_iterator *gsi, gimple *stmt, } } else - { - gcc_checking_assert (gimple_assign_rhs_code (use_stmt) - == COND_EXPR); - tree cond = build2 (ovf_use == 1 ? NE_EXPR : EQ_EXPR, - boolean_type_node, ovf, - build_int_cst (type, 0)); - gimple_assign_set_rhs1 (use_stmt, cond); - } + gcc_unreachable (); } update_stmt (use_stmt); if (code == MULT_EXPR && use_stmt != orig_use_stmt) -- 2.43.0