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

Haochen Jiang <haochen.jiang at intel dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jh at suse dot cz

--- Comment #6 from Haochen Jiang <haochen.jiang at intel dot com> ---
>From my investigation, there are two commits related to this PR. Both of them
related to copy header pass (ch2).

This is the dump before ch2 pass for that loop.

  <bb 9> [local count: 109475452]:
  _4 = n_1(D) % 5;
  if (_4 == 0)
    goto <bb 14>; [3.66%]
  else
    goto <bb 10>; [96.34%]

  <bb 10> [local count: 105468650]:
  _24 = n_1(D) % 7;
  if (_24 == 0)
    goto <bb 14>; [3.66%]
  else
    goto <bb 13>; [96.34%]


First is r14-2675. After this commit, the ch2 pass refused to duplicate bb 9
and bb 10 for the following reason, which previously will duplicate. This
caused half of the total regression.

"Not duplicating bb 9: condition based on non-IV loop variant."

The other is r14-2709. After this commit, the ch2 pass tried to duplicate both
bb 9 and bb 10, but eventually the pass did not. However, the commit
contributed the other half of the regression.

Going to dig into deeper

Reply via email to