Commit 999ad881 by Alexander Monakov Committed by Alexander Monakov

sel-sched: fix zero-usefulness case in sel_rank_for_schedule (PR 83513)

	PR rtl-optimization/83513
	* sel-sched.c (sel_rank_for_schedule): Order by non-zero usefulness
	before priority comparison.

From-SVN: r256001
parent fe3988ba
2017-12-26 Alexander Monakov <amonakov@ispras.ru>
PR rtl-optimization/83513
* sel-sched.c (sel_rank_for_schedule): Order by non-zero usefulness
before priority comparison.
2017-12-25 Jakub Jelinek <jakub@redhat.com> 2017-12-25 Jakub Jelinek <jakub@redhat.com>
PR target/83488 PR target/83488
...@@ -3396,17 +3396,22 @@ sel_rank_for_schedule (const void *x, const void *y) ...@@ -3396,17 +3396,22 @@ sel_rank_for_schedule (const void *x, const void *y)
else if (control_flow_insn_p (tmp2_insn) && !control_flow_insn_p (tmp_insn)) else if (control_flow_insn_p (tmp2_insn) && !control_flow_insn_p (tmp_insn))
return 1; return 1;
/* Prefer an expr with greater priority. */ /* Prefer an expr with non-zero usefulness. */
if (EXPR_USEFULNESS (tmp) != 0 || EXPR_USEFULNESS (tmp2) != 0) int u1 = EXPR_USEFULNESS (tmp), u2 = EXPR_USEFULNESS (tmp2);
{
int p2 = EXPR_PRIORITY (tmp2) + EXPR_PRIORITY_ADJ (tmp2),
p1 = EXPR_PRIORITY (tmp) + EXPR_PRIORITY_ADJ (tmp);
val = p2 * EXPR_USEFULNESS (tmp2) - p1 * EXPR_USEFULNESS (tmp); if (u1 == 0)
{
if (u2 == 0)
u1 = u2 = 1;
else
return 1;
} }
else else if (u2 == 0)
val = EXPR_PRIORITY (tmp2) - EXPR_PRIORITY (tmp) return -1;
+ EXPR_PRIORITY_ADJ (tmp2) - EXPR_PRIORITY_ADJ (tmp);
/* Prefer an expr with greater priority. */
val = (u2 * (EXPR_PRIORITY (tmp2) + EXPR_PRIORITY_ADJ (tmp2))
- u1 * (EXPR_PRIORITY (tmp) + EXPR_PRIORITY_ADJ (tmp)));
if (val) if (val)
return val; return val;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment