Ping?

Thanks!
-Zhenqiang

On 5 July 2013 17:37, Zhenqiang Chen <zhenqiang.c...@linaro.org> wrote:
> On 5 July 2013 16:18, Jakub Jelinek <ja...@redhat.com> wrote:
>> On Fri, Jul 05, 2013 at 04:11:00PM +0800, Zhenqiang Chen wrote:
>>> +       FOR_BB_INSNS(bb, x)
>>
>> Just style nits:
>> Missing space between (.  Also, please don't use uppercase names
>> for labels.
>>
>>         Jakub
>
> Thanks for the comments. Update it as:
>
> diff --git a/gcc/function.c b/gcc/function.c
> index 3e33fc7..0d15db4 100644
> --- a/gcc/function.c
> +++ b/gcc/function.c
> @@ -5524,12 +5524,40 @@ move_insn_for_shrink_wrap (basic_block bb, rtx insn,
>           SET_REGNO_REG_SET (live_in, i);
>         }
>
> +      /* DF_LR_BB_INFO (bb)->def does not cover the DF_REF_PARTIAL and
> +        DF_REF_CONDITIONAL def.  So recheck the DF_INSN_DEFS.  */
> +      if (next_block)
> +       {
> +         rtx x;
> +         df_ref *def_rec;
> +
> +         FOR_BB_INSNS (bb, x)
> +           {
> +             if (!NONDEBUG_INSN_P (x))
> +               continue;
> +
> +             for (def_rec = DF_INSN_DEFS (x); *def_rec; def_rec++)
> +               {
> +                 df_ref def = *def_rec;
> +                 unsigned int regno = DF_REF_REGNO (def);
> +
> +                 for (i = dregno; i < end_dregno; i++)
> +                   if (i == regno)
> +                     goto move_insn_done;
> +                 for (i = sregno; i < end_sregno; i++)
> +                   if (i == regno)
> +                     goto move_insn_done;
> +               }
> +           }
> +       }
> +
>        /* If we don't need to add the move to BB, look for a single
>          successor block.  */
>        if (next_block)
>         next_block = next_block_for_reg (next_block, dregno, end_dregno);
>      }
>    while (next_block);
> +move_insn_done:
>
>    /* BB now defines DEST.  It only uses the parts of DEST that overlap SRC
>       (next loop).  */

Reply via email to