From bf3a40e953ac2de927a56de8fda9cda4eba036ad Mon Sep 17 00:00:00 2001 From: Dmitry Melnik Date: Thu, 11 Aug 2011 11:40:07 +0000 Subject: [PATCH] sel-sched-ir.c (merge_expr_data): Take maximum spec. 2011-08-11 Dmitry Melnik * sel-sched-ir.c (merge_expr_data): Take maximum spec. From-SVN: r177651 --- gcc/ChangeLog | 4 ++++ gcc/sel-sched-ir.c | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b84e8bfe69..a2e42c7711b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2011-08-11 Dmitry Melnik + + * sel-sched-ir.c (merge_expr_data): Take maximum spec. + 2011-08-11 Richard Sandiford * 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 ac483257eb8..599714b44e4 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) -- 2.30.2