diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/sel-sched.c | 3 |
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 |