aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/sel-sched.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c1b18ab..671c8f3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-02-25 Andrey Belevantsev <abel@ispras.ru>
+
+ PR rtl-optimization/60292
+ * sel-sched.c (fill_vec_av_set): Do not reset target availability
+ bit fot the fence instruction.
+
2014-02-24 Alangi Derick <alangiderick@gmail.com>
* calls.h: Fix typo in comment.
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index 490f361..f13975d 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -3823,7 +3823,8 @@ fill_vec_av_set (av_set_t av, blist_t bnds, fence_t fence,
/* If insn was already scheduled on the current fence,
set TARGET_AVAILABLE to -1 no matter what expr's attribute says. */
- if (vinsn_vec_has_expr_p (vec_target_unavailable_vinsns, expr))
+ if (vinsn_vec_has_expr_p (vec_target_unavailable_vinsns, expr)
+ && !fence_insn_p)
target_available = -1;
/* If the availability of the EXPR is invalidated by the insertion of