On Fri, Jul 30, 2021 at 1:15 PM Kewen.Lin <li...@linux.ibm.com> wrote:
>
> Hi,
>
> This patch is to fix the typos in the move_sese_region_to_fn.
> As mentioned here [1], I tried to debug the test case
> gcc.dg/graphite/pr83359.c with trunk, but I found it didn't
> go into the hunk guard with "if (moved_orig_loop_num)".  So
> I switched to commit 555758de90074 (also reproduced the ICE
> with 555758de90074~ to ensure my used command step is correct),
> I noticed the compilation of the test case only covers the
> hunk
>
>         else
>           {
>             moved_orig_loop_num[dloop->orig_loop_num] = -1;
>             dloop->orig_loop_num = 0;
>           }
>
> it doesn't touch the hunk
>
>         if ((*larray)[dloop->orig_loop_num] != NULL
>             && get_loop (saved_cfun, dloop->orig_loop_num) == NULL)
>           {
>             if (moved_orig_loop_num[dloop->orig_loop_num] >= 0
>                 && moved_orig_loop_num[dloop->orig_loop_num] < 2)
>               moved_orig_loop_num[dloop->orig_loop_num]++;
>             dloop->orig_loop_num = (*larray)[dloop->orig_loop_num]->num;
>           }
>
> so the following hunk using dloop and guarded with
> "if (moved_orig_loop_num[orig_loop_num] == 2)" doesn't get executed.
>
> It explains why the problem doesn't get exposed before.
>
> By looking to the code using dloop, I think it's a copy/paste typo,
> the assertion
>
>               gcc_assert ((*larray)[dloop->orig_loop_num] != NULL
>                           && (get_loop (saved_cfun, dloop->orig_loop_num)
>                               == NULL));
>
> would like to ensure the condition in the previous
> loop iterating is true, that is:
>
>         if ((*larray)[dloop->orig_loop_num] != NULL
>             && get_loop (saved_cfun, dloop->orig_loop_num) == NULL)
>
> But in that context, I think the expected original number has been
> assigned to variable orig_loop_num by extracting from the arg0
> of IFN_LOOP_DIST_ALIAS call.  So replace those ones.
>
> Is it ok for trunk?

OK.

Thanks,
Richard.

> [1] https://gcc.gnu.org/pipermail/gcc-patches/2021-July/576367.html
>
> BR,
> Kewen
> -----
> gcc/ChangeLog:
>
>         * tree-cfg.c (move_sese_region_to_fn): Fix typos on dloop.

Reply via email to