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

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2024-12-06
     Ever confirmed|0                           |1
                 CC|                            |jason at gcc dot gnu.org
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Jason Merrill <jason at gcc dot gnu.org> ---
The prediction is already gone in the einline dump, after inlining into
value_or. I expect the same hot label comment after <bb 3> but it's not there:

int optional::value_or (const struct optional * const this, int def)
{
  bool D.2901;
  bool b;
  bool _1;
  int _2;
  int _3;
  bool retval.0_7;
  int _9;
  int _10;
  bool _11;

  <bb 2> :
  _1 = this_5(D)->has_val;
  _2 = (int) _1;
  b_6 = (bool) _2;
  _11 = b_6;
  retval.0_7 = _11;
  if (retval.0_7 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  _10 = this_5(D)->D.2865.val;
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 5>; [INV]

  <bb 4> :
  _9 = def_8(D);
  // predicted unlikely by early return (on trees) predictor.

  <bb 5> :
  # _3 = PHI <_10(3), _9(4)>
  return _3;

}

Reply via email to