https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81443

--- Comment #17 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 23 Jan 2018, ebotcazou at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81443
> 
> Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |rguenth at gcc dot gnu.org
> 
> --- Comment #16 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Richard, would you be OK to apply a stopgap fix for the 7.3 release?
> 
> Index: rtlanal.c
> ===================================================================
> --- rtlanal.c   (revision 256841)
> +++ rtlanal.c   (working copy)
> @@ -4976,7 +4976,7 @@ num_sign_bit_copies1 (const_rtx x, machi
>        if (WORD_REGISTER_OPERATIONS
>           && load_extend_op (inner_mode) == SIGN_EXTEND
>           && paradoxical_subreg_p (x)
> -         && (MEM_P (SUBREG_REG (x)) || REG_P (SUBREG_REG (x))))
> +         && MEM_P (SUBREG_REG (x)))
>         return cached_num_sign_bit_copies (SUBREG_REG (x), mode,
>                                            known_x, known_mode, known_ret);
>        break;
> 
> It's a partial reversion of my change for PR rtl-optimization/59461, hence 
> only
> a small pessimization for 64-bit WORD_REGISTER_OPERATIONS SIGN_EXTEND targets.

Yes, that works for me.  It looks like after the above change this part
of the code is exactly the same as on the GCC 6 branch (after hookizing
LOAD_EXTEND_OP)

Reply via email to