[Bug middle-end/81318] [8 regression] ICE in to_reg_br_prob_base, at profile-count.h:189

ygribov at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Jul 23 05:18:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81318

--- Comment #12 from Yury Gribov <ygribov at gcc dot gnu.org> ---
Created attachment 41813
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41813&action=edit
Too simple patch for last issue

(In reply to David Binderman from comment #10)
> I have this code:
> ...
> derived from Linux kernel and it does this with revision 250361:

This happens because count for basic block which calls b() is 0 after
early_inline.  This prevents probablity assignment in
combine_predictions_for_bb:
  if (!bb->count.initialized_p () && !dry_run)
    {
      first->probability
         = profile_probability::from_reg_br_prob_base (combined_probability);
      second->probability = first->probability.invert ();
    }

Later this ICEs in estimate_bb_frequencies because it assumes probability is
set:
  if (!bb->count.initialized_p () && !dry_run)
    {
      first->probability
         = profile_probability::from_reg_br_prob_base (combined_probability);
      second->probability = first->probability.invert ();
    }

Here's a simple fix but it looks more like a hack.


More information about the Gcc-bugs mailing list