]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR middle-end/56077 (volatile ignored when function inlined)
authorAndrey Belevantsev <abel@ispras.ru>
Mon, 1 Apr 2013 08:31:16 +0000 (12:31 +0400)
committerAndrey Belevantsev <abel@gcc.gnu.org>
Mon, 1 Apr 2013 08:31:16 +0000 (12:31 +0400)
        Backport from mainline
        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.

From-SVN: r197300

gcc/ChangeLog
gcc/sched-deps.c

index 1a8f96e8480d297668e82f7b5ebbcfc55f1959d5..5f01a96632f7b40abfeaf90b366288e680f8307c 100644 (file)
@@ -1,3 +1,13 @@
+2013-04-01  Andrey Belevantsev  <abel@ispras.ru>
+
+       Backport from mainline
+       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-03-22  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR target/56560
index 50494cfc23f45dcbf86fa03019e384a54ac2238d..12f87a311afd0adebd4948f0c546251db99c7406 100644 (file)
@@ -3042,9 +3042,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 for
+        selective scheduling.  */
+      if (!sel_sched_p () || !sel_insn_is_speculation_check (insn))
        flush_pending_lists (deps, insn, true, true);
 
       if (!deps->readonly)