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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
            Version|unknown                     |11.0
           Keywords|                            |missed-optimization
                 CC|                            |hubicka at gcc dot gnu.org
   Last reconfirmed|                            |2021-04-12

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Looks related to PR99991 - we do an IPA SRA clone but fail to inline it and
thus we end up with

void d.isra ()
{
  int D.1980;
  int g.2_1;

  <bb 2> [local count: 10631108]:

  <bb 3> [local count: 96646437]:
  g.2_1 = 0;
  if (g.2_1 != 0)
    goto <bb 3>; [89.00%]
  else
    goto <bb 4>; [11.00%]

  <bb 4> [local count: 1073741824]:
  foo ();
  goto <bb 4>; [100.00%]

}

int main ()
{
  int a.0_2;
  int b.1_3;

  <bb 2> [local count: 59461674]:
  goto <bb 6>; [100.00%]

  <bb 3> [local count: 1014686025]:
  a.0_2 = a;
  if (a.0_2 == 0)
    goto <bb 4>; [99.96%]
  else
    goto <bb 5>; [0.04%]

  <bb 4> [local count: 1014280151]:
  // predicted unlikely by continue predictor.
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 405874]:
  d.isra ();

  <bb 6> [local count: 1073741824]:
  b.1_3 = b;
  if (b.1_3 != 0)
    goto <bb 3>; [94.50%]
  else
    goto <bb 7>; [5.50%]

  <bb 7> [local count: 59055800]:
  return 0;

}

where we optimize main to 'return 0' but fail to elide the unused d.isra.

So also a dup of the cases where a late IPA function reclaim is missing.

Reply via email to