This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

doloop_optimize


Davem's recent SEQUENCE patch got the doloop_optimize change wrong.
We want to extract the pattern from a single insn or a list of insns.

gcc/ChangeLog

	* doloop.c (doloop_optimize): Extract pattern from insn.

Index: gcc/doloop.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doloop.c,v
retrieving revision 1.18
diff -u -p -r1.18 doloop.c
--- gcc/doloop.c	11 Jun 2002 12:21:52 -0000	1.18
+++ gcc/doloop.c	17 Jun 2002 05:13:09 -0000
@@ -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;
     }
 

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]