aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Melnik <dm@ispras.ru>2011-08-11 11:40:07 +0000
committerAlexander Monakov <amonakov@gcc.gnu.org>2011-08-11 15:40:07 +0400
commitbf3a40e953ac2de927a56de8fda9cda4eba036ad (patch)
treee25f9911c3eeb8a371b123237a9938cd296d9ad0
parentf82d1a94ecc2cbeff1807bae81783dbf1147bb7b (diff)
downloadgcc-bf3a40e953ac2de927a56de8fda9cda4eba036ad.zip
gcc-bf3a40e953ac2de927a56de8fda9cda4eba036ad.tar.gz
gcc-bf3a40e953ac2de927a56de8fda9cda4eba036ad.tar.bz2
sel-sched-ir.c (merge_expr_data): Take maximum spec.
2011-08-11 Dmitry Melnik <dm@ispras.ru> * sel-sched-ir.c (merge_expr_data): Take maximum spec. From-SVN: r177651
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/sel-sched-ir.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3b84e8b..a2e42c7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2011-08-11 Dmitry Melnik <dm@ispras.ru>
+
+ * sel-sched-ir.c (merge_expr_data): Take maximum spec.
+
2011-08-11 Richard Sandiford <richard.sandiford@linaro.org>
* doc/md.texi (define_bypass): Say that the instruction names can
diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c
index ac48325..599714b 100644
--- a/gcc/sel-sched-ir.c
+++ b/gcc/sel-sched-ir.c
@@ -1810,9 +1810,9 @@ update_speculative_bits (expr_t to, expr_t from, insn_t split_point)
void
merge_expr_data (expr_t to, expr_t from, insn_t split_point)
{
- /* For now, we just set the spec of resulting expr to be minimum of the specs
- of merged exprs. */
- if (EXPR_SPEC (to) > EXPR_SPEC (from))
+ /* Choose the maximum of the specs of merged exprs. This is required
+ for correctness of bookkeeping. */
+ if (EXPR_SPEC (to) < EXPR_SPEC (from))
EXPR_SPEC (to) = EXPR_SPEC (from);
if (split_point)