On 7/1/19 4:28 AM, Martin Liška wrote:
> On 6/27/19 7:24 PM, Richard Sandiford wrote:
>> Martin Liška <mli...@suse.cz> writes:
>>> diff --git a/gcc/config/i386/i386-expand.c b/gcc/config/i386/i386-expand.c
>>> index d50b811d863..1bd251ea8e2 100644
>>> --- a/gcc/config/i386/i386-expand.c
>>> +++ b/gcc/config/i386/i386-expand.c
>>> @@ -19780,8 +19780,7 @@ ix86_expand_sse2_mulvxdi3 (rtx op0, rtx op1, rtx 
>>> op2)
>>>        emit_insn (gen_vec_widen_umult_even_v4si (t5, 
>>>                                     gen_lowpart (V4SImode, op1),
>>>                                     gen_lowpart (V4SImode, op2)));
>>> -      op0 = expand_binop (mode, add_optab, t5, t4, op0, 1, OPTAB_DIRECT);
>>> -
>>> +      expand_binop (mode, add_optab, t5, t4, op0, 1, OPTAB_DIRECT);
>>>      }
>>>    else
>>>      {
>> This means that nothing uses the expanded value.  It looks like the
>> call was meant to be force_expand_binop instead, so that the expansion
>> always goes to op0.
> You are right. The same function is called in the else branch of the 
> condition.
> 
> I'm sending updated version of the patch.
> 
> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
> 
> Ready to be installed?
> Thanks,
> Martin
> 
>> Richard
>>
> 
> 0001-Remove-another-bunch-of-dead-assignment.patch
> 
> From aecb58d06336baeaa86942424c3314c6020dd754 Mon Sep 17 00:00:00 2001
> From: Martin Liska <mli...@suse.cz>
> Date: Thu, 27 Jun 2019 13:39:24 +0200
> Subject: [PATCH] Remove another bunch of dead assignment.
> 
> gcc/ChangeLog:
> 
> 2019-06-27  Martin Liska  <mli...@suse.cz>
> 
>       * lra-eliminations.c (eliminate_regs_in_insn): Remove
>       dead assignemts.
>       * reg-stack.c (check_asm_stack_operands): Likewise.
>       * tree-ssa-structalias.c (create_function_info_for): Likewise.
>       * tree-vect-generic.c (expand_vector_operations_1): Likewise.
>       * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
>       force_expand_binop.
> 
> gcc/c-family/ChangeLog:
> 
> 2019-06-27  Martin Liska  <mli...@suse.cz>
> 
>       * c-common.c (try_to_locate_new_include_insertion_point): Remove
>       dead assignemts.
> 
> gcc/cp/ChangeLog:
> 
> 2019-06-27  Martin Liska  <mli...@suse.cz>
> 
>       * call.c (build_new_op_1): Remove
>       dead assignemts.
>       * typeck.c (cp_build_binary_op): Likewise.
> 
> gcc/fortran/ChangeLog:
> 
> 2019-06-27  Martin Liska  <mli...@suse.cz>
> 
>       * check.c (gfc_check_c_funloc): Remove
>       dead assignemts.
>       * decl.c (variable_decl): Likewise.
>       * resolve.c (resolve_typebound_function): Likewise.
>       * simplify.c (gfc_simplify_matmul): Likewise.
>       (gfc_simplify_scan): Likewise.
>       * trans-array.c (gfc_could_be_alias): Likewise.
>       * trans-common.c (add_equivalences): Likewise.
>       * trans-expr.c (trans_class_vptr_len_assignment): Likewise.
>       (gfc_trans_array_constructor_copy): Likewise.
>       (gfc_trans_assignment_1): Likewise.
>       * trans-intrinsic.c (conv_intrinsic_atomic_op): Likewise.
>       * trans-openmp.c (gfc_omp_finish_clause): Likewise.
>       * trans-types.c (gfc_get_array_descriptor_base): Likewise.
>       * trans.c (gfc_build_final_call): Likewise.
> 
> libcpp/ChangeLog:
> 
> 2019-06-27  Martin Liska  <mli...@suse.cz>
> 
>       * line-map.c (linemap_get_expansion_filename): Remove
>       dead assignemts.
>       * mkdeps.c (make_write): Likewise.
OK
jeff

Reply via email to