OSDN Git Service

* doloop.c (doloop_optimize): Extract pattern from insn.
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Jun 2002 22:45:44 +0000 (22:45 +0000)
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Jun 2002 22:45:44 +0000 (22:45 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54722 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/doloop.c

index 8a17de5..aa586a2 100644 (file)
@@ -1,3 +1,7 @@
+2002-06-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * doloop.c (doloop_optimize): Extract pattern from insn.
+
 2002-06-17  Matt Kraai  <kraai@alumni.cmu.edu>
 
        * doc/extend.texi (Function Attributes): Remove `,...' from @var.
index dc9ea37..de59562 100644 (file)
@@ -875,11 +875,13 @@ doloop_optimize (loop)
      jump instruction.  Also, a raw define_insn may yield a plain
      pattern.  */
   doloop_pat = doloop_seq;
-  if (INSN_P (doloop_pat) && NEXT_INSN (doloop_pat) != NULL_RTX)
+  if (INSN_P (doloop_pat))
     {
       while (NEXT_INSN (doloop_pat) != NULL_RTX)
        doloop_pat = NEXT_INSN (doloop_pat);
-      if (GET_CODE (doloop_pat) != JUMP_INSN)
+      if (GET_CODE (doloop_pat) == JUMP_INSN)
+       doloop_pat = PATTERN (doloop_pat);
+      else
        doloop_pat = NULL_RTX;
     }