re PR bootstrap/63432 (profiledbootstrap failure with bootstrap-lto)

2014-10-15  Teresa Johnson  <tejohnson@google.com>

	PR bootstrap/63432
	* tree-ssa-threadupdate.c (recompute_probabilities): Better
	overflow checking.

From-SVN: r216269
This commit is contained in:
Teresa Johnson 2014-10-15 15:45:59 +00:00 committed by Teresa Johnson
parent bb8c2886db
commit e631038f4b
2 changed files with 21 additions and 13 deletions

View file

@ -1,3 +1,9 @@
2014-10-15 Teresa Johnson <tejohnson@google.com>
PR bootstrap/63432
* tree-ssa-threadupdate.c (recompute_probabilities): Better
overflow checking.
2014-10-15 Renlin Li <renlin.li@arm.com>
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define

View file

@ -871,21 +871,23 @@ recompute_probabilities (basic_block bb)
edge_iterator ei;
FOR_EACH_EDGE (esucc, ei, bb->succs)
{
if (bb->count)
if (!bb->count)
continue;
/* Prevent overflow computation due to insane profiles. */
if (esucc->count < bb->count)
esucc->probability = GCOV_COMPUTE_SCALE (esucc->count,
bb->count);
if (esucc->probability > REG_BR_PROB_BASE)
{
/* Can happen with missing/guessed probabilities, since we
may determine that more is flowing along duplicated
path than joiner succ probabilities allowed.
Counts and freqs will be insane after jump threading,
at least make sure probability is sane or we will
get a flow verification error.
Not much we can do to make counts/freqs sane without
redoing the profile estimation. */
esucc->probability = REG_BR_PROB_BASE;
}
else
/* Can happen with missing/guessed probabilities, since we
may determine that more is flowing along duplicated
path than joiner succ probabilities allowed.
Counts and freqs will be insane after jump threading,
at least make sure probability is sane or we will
get a flow verification error.
Not much we can do to make counts/freqs sane without
redoing the profile estimation. */
esucc->probability = REG_BR_PROB_BASE;
}
}