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> 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
rtl-optimization/79125 rtl-optimization/79125

View File

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