diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-01-30 21:03:04 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-01-30 21:03:04 +0100 |
commit | c5370327b043595a13cda2237cf2007b690440ef (patch) | |
tree | b5053a5eee16279b6ff819bdd0480579d6c70ce2 | |
parent | b1c7b29a3cae7dcf652cc3e3f971ec010153d814 (diff) | |
download | gcc-c5370327b043595a13cda2237cf2007b690440ef.zip gcc-c5370327b043595a13cda2237cf2007b690440ef.tar.gz gcc-c5370327b043595a13cda2237cf2007b690440ef.tar.bz2 |
re PR target/83986 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2348)
PR rtl-optimization/83986
* sched-deps.c (sched_analyze_insn): For frame related insns, add anti
dependence against last_pending_memory_flush in addition to
pending_jump_insns.
* gcc.dg/pr83986.c: New test.
From-SVN: r257203
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/sched-deps.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr83986.c | 14 |
4 files changed, 28 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c906836..e4c68ff 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2018-01-30 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/83986 + * sched-deps.c (sched_analyze_insn): For frame related insns, add anti + dependence against last_pending_memory_flush in addition to + pending_jump_insns. + 2018-01-30 Alexandre Oliva <aoliva@redhat.com> PR tree-optimization/81611 diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 2d0199d..9a5cbeb 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -2922,6 +2922,8 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx_insn *insn) = alloc_INSN_LIST (insn, deps->sched_before_next_jump); /* Make sure epilogue insn is scheduled after preceding jumps. */ + add_dependence_list (insn, deps->last_pending_memory_flush, 1, + REG_DEP_ANTI, true); add_dependence_list (insn, deps->pending_jump_insns, 1, REG_DEP_ANTI, true); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0eac073..8a8b716 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-01-30 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/83986 + * gcc.dg/pr83986.c: New test. + 2018-01-30 Bill Seurer <seurer@linux.vnet.ibm.com> PR 58684 diff --git a/gcc/testsuite/gcc.dg/pr83986.c b/gcc/testsuite/gcc.dg/pr83986.c new file mode 100644 index 0000000..31a53d9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr83986.c @@ -0,0 +1,14 @@ +/* PR rtl-optimization/83986 */ +/* { dg-do compile } */ +/* { dg-options "-g -O2 -fsched2-use-superblocks -funwind-tables --param max-pending-list-length=1" } */ + +int v; + +int +foo (int x) +{ + v &= !!v && !!x; + if (v != 0) + foo (0); + return 0; +} |