[Bug rtl-optimization/33737] [4.3 Regression] verify_flow_info failed: Wrong probability of edge 94->1 -6651
ebotcazou at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Nov 6 15:14:00 GMT 2007
------- Comment #10 from ebotcazou at gcc dot gnu dot org 2007-11-06 15:14 -------
Things start to go awry much earlier though, at the end of the first VRP pass
when jumps are threaded. More specifically in update_bb_profile_for_threading
if (prob > taken_edge->probability)
{
if (dump_file)
fprintf (dump_file, "Jump threading proved probability of edge "
"%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;
}
is triggered a bunch times. Now, that it is triggered means that the local
update of block frequency doesn't work and a global update would be needed.
So we end up with a bunch of predecessors of the EXIT block with frequency
greater than BB_FREQ_MAX / 2, which doesn't make much sense.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33737
More information about the Gcc-bugs
mailing list