libstdc++: Review _Local_iterator/_Local_const_iterator implementations.
[gcc.git] / gcc / ccmp.c
index 4fa3ebdc422b6e877532e030ed7d2169ab45f4e1..ca77375a91aec35352be0030569d6c9a990a9040 100644 (file)
@@ -1,5 +1,5 @@
 /* Conditional compare related functions
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2020 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -94,7 +94,6 @@ ccmp_tree_comparison_p (tree t, basic_block bb)
 static bool
 ccmp_candidate_p (gimple *g)
 {
-  tree rhs;
   tree lhs, op0, op1;
   gimple *gs0, *gs1;
   tree_code tcode;
@@ -103,20 +102,18 @@ ccmp_candidate_p (gimple *g)
   if (!g)
     return false;
 
-  rhs = gimple_assign_rhs_to_tree (g);
-  tcode = TREE_CODE (rhs);
+  tcode = gimple_assign_rhs_code (g);
   if (tcode != BIT_AND_EXPR && tcode != BIT_IOR_EXPR)
     return false;
 
   lhs = gimple_assign_lhs (g);
-  op0 = TREE_OPERAND (rhs, 0);
-  op1 = TREE_OPERAND (rhs, 1);
-  bb = gimple_bb (g);
-
+  op0 = gimple_assign_rhs1 (g);
+  op1 = gimple_assign_rhs2 (g);
   if ((TREE_CODE (op0) != SSA_NAME) || (TREE_CODE (op1) != SSA_NAME)
       || !has_single_use (lhs))
     return false;
 
+  bb = gimple_bb (g);
   gs0 = get_gimple_for_ssa_name (op0); /* gs0 may be NULL */
   gs1 = get_gimple_for_ssa_name (op1); /* gs1 may be NULL */
 
@@ -190,12 +187,11 @@ expand_ccmp_next (tree op, tree_code code, rtx prev,
 static rtx
 expand_ccmp_expr_1 (gimple *g, rtx_insn **prep_seq, rtx_insn **gen_seq)
 {
-  tree exp = gimple_assign_rhs_to_tree (g);
-  tree_code code = TREE_CODE (exp);
+  tree_code code = gimple_assign_rhs_code (g);
   basic_block bb = gimple_bb (g);
 
-  tree op0 = TREE_OPERAND (exp, 0);
-  tree op1 = TREE_OPERAND (exp, 1);
+  tree op0 = gimple_assign_rhs1 (g);
+  tree op1 = gimple_assign_rhs2 (g);
   gimple *gs0 = get_gimple_for_ssa_name (op0);
   gimple *gs1 = get_gimple_for_ssa_name (op1);
   rtx tmp;