https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92862
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |marxin at gcc dot gnu.org
Version|unknown |10.0
Assignee|unassigned at gcc dot gnu.org |marxin at gcc dot
gnu.org
Target Milestone|--- |10.0
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
> >
> > Function predict_paths_leading_to_edge() in predict.c:
> >
> > FOR_EACH_EDGE (e2, ei, bb->succs)
> > if (e2->dest != e->src && e2->dest != e->dest
> > && !unlikely_executed_edge_p (e)
> > && !dominated_by_p (CDI_POST_DOMINATORS, e->src, e2->dest))
> > {
> > has_nonloop_edge = true;
> > break;
> > }
> >
> > "e" is loop invariant, I guess that unlikely_executed_edge_p (e) might be
> > unlikely_executed_edge_p (e2), which is more reasonable. And we can find
> > similar code in predict_paths_for_bb () that uses the latter.
>
> CCing Honza for the above.
Yes, after reading of the code, there should really be 'e2'. Let me send patch
for both issues.