From f45e90535d0225cc6236b256f60d7b03e6cdfe26 Mon Sep 17 00:00:00 2001
From: Andrey Belevantsev <abel@ispras.ru>
Date: Mon, 25 Feb 2013 12:48:42 +0400
Subject: [PATCH] re PR middle-end/56077 (volatile ignored when function
 inlined)

2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
            Alexander Monakov  <amonakov@ispras.ru>

        PR middle-end/56077
        * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
        flush pending lists also on non-jumps.  Adjust comment.


Co-Authored-By: Alexander Monakov <amonakov@ispras.ru>

From-SVN: r196252
---
 gcc/ChangeLog    | 7 +++++++
 gcc/sched-deps.c | 6 +++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 71abb1c6b503..999a6bd83725 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
+	    Alexander Monakov  <amonakov@ispras.ru>
+
+	PR middle-end/56077
+	* sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
+	flush pending lists also on non-jumps.  Adjust comment.
+
 2013-02-24  Catherine Moore  <clm@codesourcery.com>
 	    Maciej W. Rozycki  <macro@codesourcery.com>
 	    Tom de Vries  <tom@codesourcery.com>
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index 7de974b6358e..da4b87910e58 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -3317,9 +3317,9 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
             SET_REGNO_REG_SET (&deps->reg_last_in_use, i);
           }
 
-      /* Flush pending lists on jumps, but not on speculative checks.  */
-      if (JUMP_P (insn) && !(sel_sched_p ()
-                             && sel_insn_is_speculation_check (insn)))
+      /* Don't flush pending lists on speculative checks and for
+	 selective scheduling.  */
+      if (!sel_sched_p () || !sel_insn_is_speculation_check (insn))
 	flush_pending_lists (deps, insn, true, true);
 
       reg_pending_barrier = NOT_A_BARRIER;
-- 
GitLab