On 08/03/2011 11:30 AM, Alexander Monakov wrote:
From: Dmitry Melnik<d...@ispras.ru>
EXPR_SPEC is an indicator of the speculativeness of an expression (an
instruction or just an rhs), as it is incremented each time the expression is
moved up across a conditional branch. When merging expr attributes for
similar exprs available from two destinations of a branch, sel-sched assigns
the minimum of EXPR_SPEC's to the result, effectively making the resulting
expr non-speculative if only one of those exprs was non-speculative. However,
since we are relying on EXPR_SPEC being a correct indication of expr's
speculativeness when deciding whether it would need a bookkeeping copy, we
really want to avoid that.
The patch changes minimum to maximum, making the code match what was
originally intended.
2011-08-04 Dmitry Melnik<d...@ispras.ru>
* sel-sched-ir.c (merge_expr_data): Take maximum spec.
OK, thanks.