aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-01-30 21:03:04 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2018-01-30 21:03:04 +0100
commitc5370327b043595a13cda2237cf2007b690440ef (patch)
treeb5053a5eee16279b6ff819bdd0480579d6c70ce2
parentb1c7b29a3cae7dcf652cc3e3f971ec010153d814 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/sched-deps.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr83986.c14
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;
+}