sel-sched-ir.c (merge_expr_data): Take maximum spec.
authorDmitry Melnik <dm@ispras.ru>
Thu, 11 Aug 2011 11:40:07 +0000 (11:40 +0000)
committerAlexander Monakov <amonakov@gcc.gnu.org>
Thu, 11 Aug 2011 11:40:07 +0000 (15:40 +0400)
2011-08-11  Dmitry Melnik  <dm@ispras.ru>

* sel-sched-ir.c (merge_expr_data): Take maximum spec.

From-SVN: r177651

gcc/ChangeLog
gcc/sel-sched-ir.c

index 3b84e8bfe699890e323cf0913f57119cbf9f9c6c..a2e42c7711bdce5e5ec9f90c8b84cc4a9d3c1a7a 100644 (file)
@@ -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
index ac483257eb8acda89e091cec875d01fad7f03bcf..599714b44e4c4d5fc2ddc87206983021e6841250 100644 (file)
@@ -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)