re PR c++/4512 (New ICE in loop_iterations at unroll.c:3510, regression vs. 3.0.1)
authorFranz Sirl <Franz.Sirl-kernel@lauterbach.com>
Wed, 10 Oct 2001 19:04:09 +0000 (19:04 +0000)
committerFranz Sirl <sirl@gcc.gnu.org>
Wed, 10 Oct 2001 19:04:09 +0000 (19:04 +0000)
2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

PR c++/4512
* unroll.c (loop_iterations): Ignore insns generated by loop
unrolling.

From-SVN: r46153

gcc/ChangeLog
gcc/unroll.c

index 462c271b50864c44712b8e2d6d3c89821b918963..a8e23242321fdf20421abcbd21e393e46248b226 100644 (file)
@@ -1,5 +1,9 @@
 2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 
+       PR c++/4512
+       * unroll.c (loop_iterations): Ignore insns generated by loop
+       unrolling.
+
        * config.gcc (mips*-*-gnu*): Delete support.
        * config/mips/gnu.h: Remove.
 
index a2af2137f052160ffcd23c0196ca57aea0717c8a..99f56fb0d71bd617ead1374ed18ef30a9c65e94d 100644 (file)
@@ -3527,6 +3527,11 @@ loop_iterations (loop)
 
       do
        {
+         /* Previous unrolling may have generated new insns not covered
+            by the uid_luid array.  */
+         if (INSN_UID (temp) >= max_uid_for_loop)
+           continue;
+
          if (GET_CODE (temp) == JUMP_INSN
              && INSN_LUID (JUMP_LABEL (temp)) > INSN_LUID (loop->top)
              && INSN_LUID (JUMP_LABEL (temp)) < INSN_LUID (loop->cont))