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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2018-10-19
                 CC|                            |rguenth at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
I'm not sure we have a general tail-duplication path, I suppose tracer is
closest, but it's cost model is profile-based.

  <bb 2> [local count: 1073741825]:
  if (big_3(D) != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:

  <bb 4> [local count: 1073741825]:
  # iftmp.0_2 = PHI <16384(2), 4096(3)>
  _1 = value_4(D) / iftmp.0_2;
  _5 = _1 * iftmp.0_2;
  return _5;

it _might_ be a phiprop thing since that is a pass that "hoists" expressions
across edges when profitable.

Reply via email to