OSDN Git Service

* unroll.c (copy_loop_body): Always ensure at least two insns
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Apr 1999 13:22:29 +0000 (13:22 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Apr 1999 13:22:29 +0000 (13:22 +0000)
        are in the copied loop.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26261 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/unroll.c

index da8276f..d33bd4b 100644 (file)
@@ -1,3 +1,8 @@
+Wed Apr  7 14:07:34 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * unroll.c (copy_loop_body): Always ensure at least two insns
+       are in the copied loop.
+
 Wed Apr  7 14:52:18 1999  Catherine Moore  <clm@cygnus.com>
 
         * config/mips/elf.h (MAKE_DECL_ONE_ONLY): Define.
index e119352..9c0109d 100644 (file)
@@ -1671,6 +1671,12 @@ copy_loop_body (copy_start, copy_end, map, exit_label, last_iteration,
 
   start_sequence ();
 
+  /* Emit a NOTE_INSN_DELETED to force at least two insns onto the sequence.
+     Else gen_sequence could return a raw pattern for a jump which we pass
+     off to emit_insn_before (instead of emit_jump_insn_before) which causes
+     a variety of losing behaviors later.  */
+  emit_note (0, NOTE_INSN_DELETED);
+
   insn = copy_start;
   do
     {