re PR lto/78407 (LTO breaks separate overriding of symbol aliases)

PR lto/78407
	* cfg.c (update_bb_profile_for_threading): Fix updating of probablity.

From-SVN: r244749
This commit is contained in:
Jan Hubicka 2017-01-21 20:36:01 +01:00 committed by Jan Hubicka
parent 509912a611
commit a6a70dcad2
2 changed files with 10 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2017-01-21 Jan Hubicka <hubicka@ucw.cz>
PR lto/78407
* cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
rtl-optimization/79125

View File

@ -869,6 +869,10 @@ update_bb_profile_for_threading (basic_block bb, int edge_frequency,
bb->count = 0;
}
bb->frequency -= edge_frequency;
if (bb->frequency < 0)
bb->frequency = 0;
/* Compute the probability of TAKEN_EDGE being reached via threaded edge.
Watch for overflows. */
if (bb->frequency)
@ -882,15 +886,12 @@ update_bb_profile_for_threading (basic_block bb, int edge_frequency,
"%i->%i too small (it is %i, should be %i).\n",
taken_edge->src->index, taken_edge->dest->index,
taken_edge->probability, prob);
prob = taken_edge->probability;
prob = taken_edge->probability * 6 / 8;
}
/* Now rescale the probabilities. */
taken_edge->probability -= prob;
prob = REG_BR_PROB_BASE - prob;
bb->frequency -= edge_frequency;
if (bb->frequency < 0)
bb->frequency = 0;
if (prob <= 0)
{
if (dump_file)