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.