> On Fri, Oct 13, 2017 at 03:38:33PM +0200, Jan Hubicka wrote:
> > Hi,
> > this patch enables check that no edge probabilities are missing. 
> > 
> > Honza
> > 
> >     * cfghooks.c (verify_flow_info): Check that edge probabilities are
> >     set.
> 
> This broke bootstrap on x86_64-linux with Ada
> (--enable-checking=yes,rtl,extra).
> 
> >From what I can see, decompose_multiword_subregs has:
> 1619                    /* Split the block after insn.  There will be a 
> fallthru
> 1620                       edge, which is OK so we keep it.  We have to 
> create the
> 1621                       exception edges ourselves.  */
> 1622                    fallthru = split_block (bb, insn);
> 1623                    rtl_make_eh_edge (NULL, bb, BB_END (bb));
> 1624                    bb = fallthru->dest;
> 1625                    insn = BB_HEAD (bb);
> and rtl_make_eh_edge calls
> 161         make_label_edge (edge_cache, src, label,
> 162                          EDGE_ABNORMAL | EDGE_EH
> 163                          | (CALL_P (insn) ? EDGE_ABNORMAL_CALL : 0));
> 
> No idea what should initialize the probabilities.  Do probabilities make
> any sense at all for EH edges (or abnormal edges)?

For EH we should set it to profile_probability::zero () because we know it is 
unlikely
path.   I will take a look.

Honza
> 
> > 
> > Index: cfghooks.c
> > ===================================================================
> > --- cfghooks.c      (revision 253694)
> > +++ cfghooks.c      (working copy)
> > @@ -160,6 +161,13 @@ verify_flow_info (void)
> >                  e->src->index, e->dest->index);
> >           err = 1;
> >         }
> > +     if (profile_status_for_fn (cfun) >= PROFILE_GUESSED
> > +         && !e->probability.initialized_p ())
> > +       {
> > +         error ("Uninitialized probability of edge %i->%i", e->src->index,
> > +                e->dest->index);
> > +         err = 1;
> > +       }
> >       if (!e->probability.verify ())
> >         {
> >           error ("verify_flow_info: Wrong probability of edge %i->%i",
> 
>       Jakub

Reply via email to