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

--- Comment #6 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 12 May 2020, hjl.tools at gmail dot com wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95021
> 
> --- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> ---
> The problem is since df_lr_bb_local_compute has
> 
>        /* If the def is to only part of the reg, it does
>            not kill the other defs that reach here.  */
>         if (!(DF_REF_FLAGS (def) & (DF_REF_PARTIAL | DF_REF_CONDITIONAL)))
>           {
>             unsigned int dregno = DF_REF_REGNO (def);
>             bitmap_set_bit (&bb_info->def, dregno);
>             bitmap_clear_bit (&bb_info->use, dregno);
>           }
> 
> it doesn't consider
> 
> (insn 40 39 25 3 (set (subreg:SI (reg/v:DI 85 [ target ]) 4)
>         (subreg:SI (reg:V2DI 90) 0)) "x.i":17:7 -1
>      (nil))
> 
> as a def.

Which it isn't since it sets the upper half of reg:DI 85 only.

Reply via email to