]> gcc.gnu.org Git - gcc.git/commitdiff
loop.c
authorMichael Hayes <m.hayes@elec.canterbury.ac.nz>
Wed, 19 Jan 2000 11:17:13 +0000 (11:17 +0000)
committerMichael Hayes <m.hayes@gcc.gnu.org>
Wed, 19 Jan 2000 11:17:13 +0000 (11:17 +0000)
From-SVN: r31500

gcc/ChangeLog
gcc/unroll.c

index 50211e64333a550d4f4cbac9bfc83f41688524af..0317a032b1e6dc0a569d9ba882bb5beb4c794c0e 100644 (file)
@@ -1,3 +1,14 @@
+2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * loop.c (current_loop_info): Renamed from loop_info_data
+       and changed to a pointer.
+       (loop_optimize): Allocate loop_info structure for each loop
+       and initialise to zero.
+       (scan_loop): Set current_loop_info.
+
+       * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
+       on iteration_var.
+
 2000-01-19  Richard Henderson  <rth@cygnus.com>
 
        * stupid.c: Die die die.
index 9225a9c1e9b94712629cc0df4c786f841a678440..b166298653e55962cbc5b5e801af3bb6a3f895ed 100644 (file)
@@ -3702,10 +3702,14 @@ loop_iterations (loop)
       return 0;
     }
 
-  /* The only new registers that care created before loop iterations are
-     givs made from biv increments, so this should never occur.  */
-
-  if ((unsigned) REGNO (iteration_var) >= reg_iv_type->num_elements)
+  /* The only new registers that are created before loop iterations
+     are givs made from biv increments or registers created by
+     load_mems.  In the latter case, it is possible that try_copy_prop
+     will propagate a new pseudo into the old iteration register but
+     this will be marked by having the REG_USERVAR_P bit set.  */
+
+  if ((unsigned) REGNO (iteration_var) >= reg_iv_type->num_elements
+      && ! REG_USERVAR_P (iteration_var))
     abort ();
 
   iteration_info (iteration_var, &initial_value, &increment,
This page took 0.074522 seconds and 5 git commands to generate.