Commit 99219dba by Andrey Belevantsev Committed by Andrey Belevantsev

re PR rtl-optimization/85423 (ICE in code_motion_process_successors, at sel-sched.c:6403)

        PR rtl-optimization/85423

        * sel-sched-ir.c (has_dependence_note_mem_dep): Only discard
        dependencies to debug insns when the previous insn is non-debug.

        * gcc.dg/pr85423.c: New test.

From-SVN: r259563
parent 0ef9f21d
2018-04-23 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/85423
* sel-sched-ir.c (has_dependence_note_mem_dep): Only discard
dependencies to debug insns when the previous insn is non-debug.
2018-04-23 Claudiu Zissulescu <claziss@synopsys.com> 2018-04-23 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.md ("vunspec"): Delete it, unify all the unspec * config/arc/arc.md ("vunspec"): Delete it, unify all the unspec
......
...@@ -3308,7 +3308,7 @@ has_dependence_note_dep (insn_t pro, ds_t ds ATTRIBUTE_UNUSED) ...@@ -3308,7 +3308,7 @@ has_dependence_note_dep (insn_t pro, ds_t ds ATTRIBUTE_UNUSED)
that a bookkeeping copy should be movable as the original insn. that a bookkeeping copy should be movable as the original insn.
Detect that here and allow that movement if we allowed it before Detect that here and allow that movement if we allowed it before
in the first place. */ in the first place. */
if (DEBUG_INSN_P (real_con) if (DEBUG_INSN_P (real_con) && !DEBUG_INSN_P (real_pro)
&& INSN_UID (NEXT_INSN (pro)) == INSN_UID (real_con)) && INSN_UID (NEXT_INSN (pro)) == INSN_UID (real_con))
return; return;
......
2018-04-23 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/85423
* gcc.dg/pr85423.c: New test.
2018-04-20 Martin Sebor <msebor@redhat.com> 2018-04-20 Martin Sebor <msebor@redhat.com>
PR c/85365 PR c/85365
......
/* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */
/* { dg-options "-O2 -fselective-scheduling2 -fvar-tracking-assignments -fno-guess-branch-probability -fno-peephole2 -fno-ssa-phiopt -fno-tree-pre --param max-jump-thread-duplication-stmts=8 -w" } */
/* { dg-additional-options "-march=nano" { target i?86-*-* x86_64-*-* } } */
int vn, xm;
void
i1 (int);
void
mb (int *ap, int ev)
{
while (vn < 1)
{
i1 (vn);
ev += *ap && ++vn;
while (xm < 1)
++xm;
if (*ap == 0)
*ap = ev;
++vn;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment