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

Reply via email to