------- Comment #1 from rguenth at gcc dot gnu dot org  2009-07-28 11:09 -------
The tree optimizers canonicalize the loop to

<bb 3>:
  # i_5 = PHI <i_3(4), 0(2)>
  # ivtmp.23_1 = PHI <ivtmp.23_4(4), 10(2)>
  f2 ();
  i_3 = i_5 + 1;
  ivtmp.23_4 = ivtmp.23_1 - 1;
  if (ivtmp.23_4 != 0)
    goto <bb 4>;
  else
    goto <bb 5>;

<bb 4>:
  goto <bb 3>;

But then IVOPTs chooses i as the induction variable again.

Maybe a DCE pass before IVOPTs magically would solve the regression - or
simply do not consider candidates without uses?


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rakdver at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |missed-optimization
      Known to fail|                            |4.0.0
      Known to work|                            |3.4.6
   Last reconfirmed|0000-00-00 00:00:00         |2009-07-28 11:09:27
               date|                            |
            Summary|No loop counter reversal for|[4.3/4.4/4.5 Regression] No
                   |simple loops anymore        |loop counter reversal for
                   |                            |simple loops anymore
   Target Milestone|---                         |4.3.4


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40886

Reply via email to