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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
   Last reconfirmed|                            |2021-10-16
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |pinskia at gcc dot 
gnu.org
           Severity|normal                      |enhancement

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Mine.
For p2:
  if (_1 == 0)
    goto <bb 3>; [34.00%]
  else
    goto <bb 4>; [66.00%]

  <bb 3> [local count: 365072224]:
  _8 = x_6(D) - _10;
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 708669601]:
  _11 = x_6(D) + 18446744073709551615;
  _7 = _11 - _10;

  <bb 5> [local count: 1073741824]:
  # _5 = PHI <_8(3), _7(4)>

this could be transformed to (which is almost p3):
  if (_1 == 0)
    goto <bb 5>; [34.00%]
  else
    goto <bb 4>; [66.00%]

  <bb 4> [local count: 708669601]:
  _11 = x_6(D) + 18446744073709551615;

  <bb 5> [local count: 1073741824]:
  # _n = PHI <x_6(D)(2), _11(4)>
  _5 = _n - _10

And then transfomed to:
  if (_1 == 0)
    goto <bb 5>; [34.00%]
  else
    goto <bb 4>; [66.00%]

  <bb 4> [local count: 708669601]:

  <bb 5> [local count: 1073741824]:
  # _n = PHI <0(2), -1(4)>
  _n0 = x_6(D) + _n
  _5 = _n0 - _10

Reply via email to