diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 78bd1f88c63..fefac6e0c95 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-10-13 Jan Hubicka + + * cfghooks.c (verify_flow_info): Check that edge probabilities are + set. + 2017-10-13 Nathan Sidwell * tree-core.h (tree_contains_struct): Make bool. diff --git a/gcc/cfghooks.c b/gcc/cfghooks.c index 18dc49a035e..c15c58c728e 100644 --- a/gcc/cfghooks.c +++ b/gcc/cfghooks.c @@ -152,6 +152,7 @@ verify_flow_info (void) bb->index, bb->frequency); err = 1; } + FOR_EACH_EDGE (e, ei, bb->succs) { if (last_visited [e->dest->index] == bb) @@ -160,6 +161,13 @@ verify_flow_info (void) e->src->index, e->dest->index); err = 1; } + if (profile_status_for_fn (cfun) >= PROFILE_GUESSED + && !e->probability.initialized_p ()) + { + error ("Uninitialized probability of edge %i->%i", e->src->index, + e->dest->index); + err = 1; + } if (!e->probability.verify ()) { error ("verify_flow_info: Wrong probability of edge %i->%i",