------- Additional Comments From steven at gcc dot gnu dot org  2005-07-14 
20:33 -------
On mainline we have this .empty dump for main: 
 
;; Function main (main) 
 
main () 
{ 
  unsigned int i; 
  int D.1613; 
  int i.0; 
 
<bb 0>: 
 
  # i_2 = PHI <i_6(2), 4(0)>; 
<L0>:; 
  i.0_5 = (int) i_2; 
  f (i.0_5); 
  i_6 = i_2 + 3; 
  if (i_6 <= 51) goto <L6>; else goto <L2>; 
 
<L6>:; 
  goto <bb 1> (<L0>); 
 
<L2>:; 
  return 0; 
 
} 
 
 
and this .ivcanon dump, which is wrong: 
 
;; Function main (main) 
 
main () 
{ 
  unsigned int ivtmp.51; 
  unsigned int i; 
  int D.1613; 
  int i.0; 
 
<bb 0>: 
 
  # ivtmp.51_1 = PHI <ivtmp.51_3(2), 1431655782(0)>; 
  # i_2 = PHI <i_6(2), 4(0)>; 
<L0>:; 
  i.0_5 = (int) i_2; 
  f (i.0_5); 
  i_6 = i_2 + 3; 
  ivtmp.51_3 = ivtmp.51_1 - 1; 
  if (ivtmp.51_3 != 0) goto <L6>; else goto <L2>; 
 
<L6>:; 
  goto <bb 1> (<L0>); 
 
<L2>:; 
  return 0; 
 
} 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rakdver at gcc dot gnu dot
                   |                            |org
           Priority|P2                          |P1
            Summary|[4.0/4.1 Regression]        |[4.0/4.1 Regression] IV
                   |Execution continues past end|canonicalization causes
                   |of for loop end condition   |execution of loops past
                   |with optimisation enabled   |their end condition


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

Reply via email to