[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
Mon Nov 5 22:44:00 GMT 2007
------- Comment #8 from ebotcazou at gcc dot gnu dot org 2007-11-05 22:44 -------
> Re. comment #5, yes the code is right to add the frequencies together.
> After cross jumping, the tail-merged block is traversed with the combined
> frequencies of the new incoming edges, so adding the frequencies is correct.
That's not clear in my opinion. In any case, there is something wrong:
redirect_to->frequency += src1->frequency;
is performed before the weighted mean
if (!redirect_to->frequency && !src1->frequency)
s->probability = (s->probability + s2->probability) / 2;
else
s->probability
= ((s->probability * redirect_to->frequency +
s2->probability * src1->frequency)
/ (redirect_to->frequency + src1->frequency));
so the weights are screwed.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33737
More information about the Gcc-bugs
mailing list