This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Remove dead call to gimple_bb in slsr_process_phi


On Mon, Jul 25, 2016 at 9:51 PM, Bill Schmidt
<wschmidt@linux.vnet.ibm.com> wrote:
> Hi,
>
> As reported on the gcc mailing list, slsr_process_phi contains a dead call
> to gimple_bb.  I looked into why this wasn't noticed before, and concluded
> that we don't actually need the call.  To reach this point, the phi argument
> must not correspond to a strength-reduction candidate in the table, and must
> not be a function argument.  Since even simple copies and casts create entries
> in the candidate table, the definition of the phi arg has a non-trivial RHS
> that is not of a form useful to strength reduction, and thus there is no
> reason to proceed; the phi is itself therefore not a strength reduction
> candidate.
>
> The existing logic leaves arg_bb with its initial NULL value, which correctly
> terminates processing for this phi.  Thus I am just changing the logic to
> make this explicit, and we don't need the call to gimple_bb at all.
>
> Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions.
> Is this ok for trunk?  (The error is harmless, so I see no reason for a
> backport.)

Ok.

Richard.

> Thanks!
> Bill
>
>
> 2016-07-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
>
>         * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
>         and unnecessary call to gimple_bb.
>
>
> Index: gcc/gimple-ssa-strength-reduction.c
> ===================================================================
> --- gcc/gimple-ssa-strength-reduction.c (revision 238719)
> +++ gcc/gimple-ssa-strength-reduction.c (working copy)
> @@ -785,14 +785,10 @@ slsr_process_phi (gphi *phi, bool speed)
>                 savings += stmt_cost (arg_stmt, speed);
>             }
>         }
> -      else
> +      else if (SSA_NAME_IS_DEFAULT_DEF (arg))
>         {
>           derived_base_name = arg;
> -
> -         if (SSA_NAME_IS_DEFAULT_DEF (arg))
> -           arg_bb = single_succ (ENTRY_BLOCK_PTR_FOR_FN (cfun));
> -         else
> -           gimple_bb (SSA_NAME_DEF_STMT (arg));
> +         arg_bb = single_succ (ENTRY_BLOCK_PTR_FOR_FN (cfun));
>         }
>
>        if (!arg_bb || arg_bb->loop_father != cand_loop)
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]