From: Kyrylo Tkachov <[email protected]>

Several C-style idioms that the file no longer needs:

noce_can_force_operand returns an enum insn_code where its declared type is
bool, relying on CODE_FOR_nothing being zero.  Compare against it instead.

bbs_ok_for_cmove_arith wraps four single-statement failure exits in braces,
left over from the BITMAP_FREE calls that used to sit next to them.

noce_find_if_block declares if_info and then memsets it seventy lines later.
Value-initialize it at the declaration.  No functional change.

gcc/ChangeLog:

        * ifcvt.cc (noce_can_force_operand): Return a bool rather than an
        insn_code.
        (bbs_ok_for_cmove_arith): Drop braces around single statements.
        (noce_find_if_block): Value-initialize if_info instead of memsetting it.

Signed-off-by: Kyrylo Tkachov <[email protected]>
---
 gcc/ifcvt.cc | 31 ++++++++++---------------------
 1 file changed, 10 insertions(+), 21 deletions(-)

diff --git a/gcc/ifcvt.cc b/gcc/ifcvt.cc
index ca0a0861f77..380cf68ac35 100644
--- a/gcc/ifcvt.cc
+++ b/gcc/ifcvt.cc
@@ -1057,7 +1057,7 @@ noce_can_force_operand (rtx x)
          auto optab = code_to_optab (GET_CODE (x));
          if (!optab)
            return false;
-         return optab_handler (optab, GET_MODE (x));
+         return optab_handler (optab, GET_MODE (x)) != CODE_FOR_nothing;
        }
     }
   if (UNARY_P (x))
@@ -1080,7 +1080,7 @@ noce_can_force_operand (rtx x)
          auto optab = code_to_optab (GET_CODE (x));
          if (!optab)
            return false;
-         return optab_handler (optab, GET_MODE (x));
+         return optab_handler (optab, GET_MODE (x)) != CODE_FOR_nothing;
        }
     }
   return false;
@@ -2294,8 +2294,8 @@ noce_emit_cmove (struct noce_if_info *if_info, rtx x, 
enum rtx_code code,
                 rtx cmp_a, rtx cmp_b, rtx vfalse, rtx vtrue, rtx cc_cmp,
                 rtx rev_cc_cmp)
 {
-  rtx target ATTRIBUTE_UNUSED;
-  bool unsignedp ATTRIBUTE_UNUSED;
+  rtx target;
+  bool unsignedp;
 
   /* If earliest == jump, try to build the cmove insn directly.
      This is helpful when combine has created some complex condition
@@ -2563,9 +2563,7 @@ bbs_ok_for_cmove_arith (basic_block bb_a, basic_block 
bb_b, rtx to_rename)
       rtx sset_a = single_set (a_insn);
 
       if (!sset_a)
-       {
-         return false;
-       }
+       return false;
       /* Record all registers that BB_A sets.  */
       FOR_EACH_INSN_DEF (def, a_insn)
        if (!(to_rename && DF_REF_REG (def) == to_rename))
@@ -2582,9 +2580,7 @@ bbs_ok_for_cmove_arith (basic_block bb_a, basic_block 
bb_b, rtx to_rename)
       rtx sset_b = single_set (b_insn);
 
       if (!sset_b)
-       {
-         return false;
-       }
+       return false;
 
       /* Make sure this is a REG and not some instance
         of ZERO_EXTRACT or non-paradoxical SUBREG or other dangerous stuff.
@@ -2597,18 +2593,12 @@ bbs_ok_for_cmove_arith (basic_block bb_a, basic_block 
bb_b, rtx to_rename)
        gcc_assert (rtx_equal_p (SET_DEST (sset_b), to_rename));
       else if (!REG_P (SET_DEST (sset_b))
               && !paradoxical_subreg_p (SET_DEST (sset_b)))
-       {
-         return false;
-       }
+       return false;
 
       /* If the insn uses a reg set in BB_A return false.  */
       FOR_EACH_INSN_USE (use, b_insn)
-       {
-         if (bitmap_bit_p (bba_sets, DF_REF_REGNO (use)))
-           {
-             return false;
-           }
-       }
+       if (bitmap_bit_p (bba_sets, DF_REF_REGNO (use)))
+         return false;
 
     }
 
@@ -5474,7 +5464,7 @@ noce_find_if_block (basic_block test_bb, edge then_edge, 
edge else_edge,
   bool then_else_reversed = false;
   rtx_insn *jump;
   rtx_insn *cond_earliest;
-  struct noce_if_info if_info;
+  noce_if_info if_info = {};
   bool speed_p = optimize_bb_for_speed_p (test_bb);
 
   /* We only ever should get here before reload.  */
@@ -5549,7 +5539,6 @@ noce_find_if_block (basic_block test_bb, edge then_edge, 
edge else_edge,
     return false;
 
   /* Initialize an IF_INFO struct to pass around.  */
-  memset (&if_info, 0, sizeof if_info);
   if_info.test_bb = test_bb;
   if_info.then_bb = then_bb;
   if_info.else_bb = else_bb;
-- 
2.50.1 (Apple Git-155)

Reply via email to