Commit 5bf3d50d by Martin Jambor Committed by Martin Jambor

re PR bootstrap/49786 (bootstrap failed with bootstrap-profiled)

2011-07-26  Martin Jambor  <mjambor@suse.cz>

	PR bootstrap/49786
	* ipa-cp.c (update_profiling_info): Avoid overflow when updating
	counts.
	(update_specialized_profile): Likewise.

From-SVN: r176789
parent 536e3f49
2011-07-26 Martin Jambor <mjambor@suse.cz>
PR bootstrap/49786
* ipa-cp.c (update_profiling_info): Avoid overflow when updating
counts.
(update_specialized_profile): Likewise.
2011-07-26 Uros Bizjak <ubizjak@gmail.com>
H.J. Lu <hongjiu.lu@intel.com>
......
......@@ -1877,7 +1877,6 @@ dump_profile_updates (struct cgraph_node *orig_node,
cgraph_node_name (cs->callee), (HOST_WIDE_INT) cs->count);
}
/* After a specialized NEW_NODE version of ORIG_NODE has been created, update
their profile information to reflect this. */
......@@ -1923,12 +1922,14 @@ update_profiling_info (struct cgraph_node *orig_node,
for (cs = new_node->callees; cs ; cs = cs->next_callee)
if (cs->frequency)
cs->count = cs->count * new_sum / orig_node_count;
cs->count = cs->count * (new_sum * REG_BR_PROB_BASE
/ orig_node_count) / REG_BR_PROB_BASE;
else
cs->count = 0;
for (cs = orig_node->callees; cs ; cs = cs->next_callee)
cs->count = cs->count * remainder / orig_node_count;
cs->count = cs->count * (remainder * REG_BR_PROB_BASE
/ orig_node_count) / REG_BR_PROB_BASE;
if (dump_file)
dump_profile_updates (orig_node, new_node);
......@@ -1966,7 +1967,8 @@ update_specialized_profile (struct cgraph_node *new_node,
for (cs = orig_node->callees; cs ; cs = cs->next_callee)
{
gcov_type dec = cs->count * redirected_sum / orig_node_count;
gcov_type dec = cs->count * (redirected_sum * REG_BR_PROB_BASE
/ orig_node_count) / REG_BR_PROB_BASE;
if (dec < cs->count)
cs->count -= dec;
else
......
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