From ef874db611879d5004e1d834543e55d31f2bfe1c Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Thu, 27 Jun 2019 13:22:36 +0200 Subject: [PATCH] Fix various issues seen with clang-static-analyzer. 2019-06-27 Martin Liska PR tree-optimization/90974 PR rtl-optimization/90975 PR rtl-optimization/90976 PR target/91016 PR tree-optimization/91017 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove unused tmp. * lra.c (lra_set_insn_recog_data): Remove a leftover from initial commit of IRA. * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead of op0 and op1. * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove unused mode1. * tree-vect-stmts.c (vectorizable_call): Remove dead assignment to new_stmt_info. From-SVN: r272746 --- gcc/ChangeLog | 18 ++++++++++++++++++ gcc/config/i386/i386-expand.c | 5 ++--- gcc/lra.c | 8 ++------ gcc/optabs.c | 4 ++-- gcc/tree-vect-loop.c | 1 - gcc/tree-vect-stmts.c | 6 ++---- 6 files changed, 26 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 73c0be048ac..f536afb5ee3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,21 @@ +2019-06-27 Martin Liska + + PR tree-optimization/90974 + PR rtl-optimization/90975 + PR rtl-optimization/90976 + PR target/91016 + PR tree-optimization/91017 + * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove + unused tmp. + * lra.c (lra_set_insn_recog_data): Remove a leftover from + initial commit of IRA. + * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead + of op0 and op1. + * tree-vect-loop.c (vect_create_epilog_for_reduction): + Remove unused mode1. + * tree-vect-stmts.c (vectorizable_call): Remove dead assignment + to new_stmt_info. + 2019-06-27 Jakub Jelinek PR target/90991 diff --git a/gcc/config/i386/i386-expand.c b/gcc/config/i386/i386-expand.c index d50b811d863..8a4955f87d2 100644 --- a/gcc/config/i386/i386-expand.c +++ b/gcc/config/i386/i386-expand.c @@ -16052,14 +16052,13 @@ ix86_expand_rounddf_32 (rtx operand0, rtx operand1) 0, OPTAB_DIRECT); /* Compensate. */ - tmp = gen_reg_rtx (mode); /* xa2 = xa2 - (dxa > 0.5 ? 1 : 0) */ tmp = ix86_expand_sse_compare_mask (UNGT, dxa, half, false); - emit_insn (gen_rtx_SET (tmp, gen_rtx_AND (mode, one, tmp))); + emit_insn (gen_rtx_SET (tmp, gen_rtx_AND (mode, tmp, one))); xa2 = expand_simple_binop (mode, MINUS, xa2, tmp, NULL_RTX, 0, OPTAB_DIRECT); /* xa2 = xa2 + (dxa <= -0.5 ? 1 : 0) */ tmp = ix86_expand_sse_compare_mask (UNGE, mhalf, dxa, false); - emit_insn (gen_rtx_SET (tmp, gen_rtx_AND (mode, one, tmp))); + emit_insn (gen_rtx_SET (tmp, gen_rtx_AND (mode, tmp, one))); xa2 = expand_simple_binop (mode, PLUS, xa2, tmp, NULL_RTX, 0, OPTAB_DIRECT); /* res = copysign (xa2, operand1) */ diff --git a/gcc/lra.c b/gcc/lra.c index bef2f676a78..982a3cc630b 100644 --- a/gcc/lra.c +++ b/gcc/lra.c @@ -1029,12 +1029,8 @@ lra_set_insn_recog_data (rtx_insn *insn) data->operand_loc, constraints, operand_mode, NULL); if (nop > 0) - { - const char *p = recog_data.constraints[0]; - - for (p = constraints[0]; *p; p++) - nalt += *p == ','; - } + for (const char *p =constraints[0]; *p; p++) + nalt += *p == ','; data->insn_static_data = insn_static_data = get_static_insn_data (-1, nop, 0, nalt); for (i = 0; i < nop; i++) diff --git a/gcc/optabs.c b/gcc/optabs.c index 5a718e7f635..18ca7370917 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -2095,8 +2095,8 @@ expand_twoval_binop (optab binoptab, rtx op0, rtx op1, rtx targ0, rtx targ1, xop1 = avoid_expensive_constant (mode1, binoptab, 1, xop1, unsignedp); create_fixed_operand (&ops[0], targ0); - create_convert_operand_from (&ops[1], op0, mode, unsignedp); - create_convert_operand_from (&ops[2], op1, mode, unsignedp); + create_convert_operand_from (&ops[1], xop0, mode, unsignedp); + create_convert_operand_from (&ops[2], xop1, mode, unsignedp); create_fixed_operand (&ops[3], targ1); if (maybe_expand_insn (icode, 4, ops)) return 1; diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index 95c2d8203ac..5176474694b 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -5427,7 +5427,6 @@ vect_create_epilog_for_reduction (vec vect_defs, dump_printf_loc (MSG_NOTE, vect_location, "Reduce using vector shifts\n"); - mode1 = TYPE_MODE (vectype1); vec_dest = vect_create_destination_var (scalar_dest, vectype1); for (elt_offset = nelements / 2; elt_offset >= 1; diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 47da2953dc7..415ac0c8679 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -3483,8 +3483,7 @@ vectorizable_call (stmt_vec_info stmt_info, gimple_stmt_iterator *gsi, = gimple_build_call_internal_vec (ifn, vargs); gimple_call_set_lhs (call, half_res); gimple_call_set_nothrow (call, true); - new_stmt_info - = vect_finish_stmt_generation (stmt_info, call, gsi); + vect_finish_stmt_generation (stmt_info, call, gsi); if ((i & 1) == 0) { prev_res = half_res; @@ -3583,8 +3582,7 @@ vectorizable_call (stmt_vec_info stmt_info, gimple_stmt_iterator *gsi, gcall *call = gimple_build_call_internal_vec (ifn, vargs); gimple_call_set_lhs (call, half_res); gimple_call_set_nothrow (call, true); - new_stmt_info - = vect_finish_stmt_generation (stmt_info, call, gsi); + vect_finish_stmt_generation (stmt_info, call, gsi); if ((j & 1) == 0) { prev_res = half_res; -- 2.30.2