Commit fee234f1 by Jan Hubicka Committed by Jan Hubicka

tracer.c (better_p): Do not compare frequencies.

	* tracer.c (better_p): Do not compare frequencies.
	* reg-stack.c (better_edge): Likewise.
	* shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts
	and back.

From-SVN: r254726
parent fc06ae0d
2017-11-13 Jan Hubicka <hubicka@ucw.cz>
* tracer.c (better_p): Do not compare frequencies.
* reg-stack.c (better_edge): Likewise.
* shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts
and back.
2017-11-13 Jan Hubicka <hubicka@ucw.cz>
* auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
* cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count.
* ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count.
......@@ -2954,11 +2954,6 @@ better_edge (edge e1, edge e2)
if (!e1)
return e2;
if (EDGE_FREQUENCY (e1) > EDGE_FREQUENCY (e2))
return e1;
if (EDGE_FREQUENCY (e1) < EDGE_FREQUENCY (e2))
return e2;
if (e1->count () > e2->count ())
return e1;
if (e1->count () < e2->count ())
......
......@@ -880,19 +880,18 @@ try_shrink_wrapping (edge *entry_edge, rtx_insn *prologue_seq)
the correct answer for reducible flow graphs; for irreducible flow graphs
our profile is messed up beyond repair anyway. */
gcov_type num = 0;
gcov_type den = 0;
profile_count num = profile_count::zero ();
profile_count den = profile_count::zero ();
FOR_EACH_EDGE (e, ei, pro->preds)
if (!dominated_by_p (CDI_DOMINATORS, e->src, pro))
{
num += EDGE_FREQUENCY (e);
den += e->src->count.to_frequency (cfun);
if (e->count ().initialized_p ())
num += e->count ();
if (e->src->count.initialized_p ())
den += e->src->count;
}
if (den == 0)
den = 1;
/* All is okay, so do it. */
crtl->shrink_wrapped = true;
......@@ -919,8 +918,9 @@ try_shrink_wrapping (edge *entry_edge, rtx_insn *prologue_seq)
if (dump_file)
fprintf (dump_file, "Duplicated %d to %d\n", bb->index, dup->index);
bb->count = bb->count.apply_scale (num, den);
if (num == profile_count::zero () || den.nonzero_p ())
bb->count = bb->count.apply_scale (num, den);
dup->count -= bb->count;
}
......
......@@ -135,8 +135,6 @@ better_p (const_edge e1, const_edge e2)
if (e1->count ().initialized_p () && e2->count ().initialized_p ()
&& ((e1->count () > e2->count ()) || (e1->count () < e2->count ())))
return e1->count () > e2->count ();
if (EDGE_FREQUENCY (e1) != EDGE_FREQUENCY (e2))
return EDGE_FREQUENCY (e1) > EDGE_FREQUENCY (e2);
/* This is needed to avoid changes in the decision after
CFG is modified. */
if (e1->src != e2->src)
......
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