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.

Reply via email to