aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrey Belevantsev <abel@ispras.ru>2013-02-25 12:48:42 +0400
committerAndrey Belevantsev <abel@gcc.gnu.org>2013-02-25 12:48:42 +0400
commitf45e90535d0225cc6236b256f60d7b03e6cdfe26 (patch)
tree74b61f14d1d704949babda8b1b5db491e0f59a48 /gcc
parent60f7a5b1297b5579aeb0922e236e5a3b2257c2ee (diff)
downloadgcc-f45e90535d0225cc6236b256f60d7b03e6cdfe26.zip
gcc-f45e90535d0225cc6236b256f60d7b03e6cdfe26.tar.gz
gcc-f45e90535d0225cc6236b256f60d7b03e6cdfe26.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/sched-deps.c6
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 71abb1c..999a6bd 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 7de974b..da4b879 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;