OSDN Git Service

* config/sh/sh.c (barrier_align): Recognize branch around far
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Jan 2001 20:03:09 +0000 (20:03 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Jan 2001 20:03:09 +0000 (20:03 +0000)
branch and redundant insn.

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

gcc/ChangeLog
gcc/config/sh/sh.c

index 5189ef8..6c1b1fe 100644 (file)
@@ -1,3 +1,8 @@
+2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/sh/sh.c (barrier_align): Recognize branch around far
+       branch and redundant insn.
+
 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
 
         * invoke.texi: Restore documentation of the drivers' switches -MD
index 158714c..b73ab59 100644 (file)
@@ -2862,7 +2862,11 @@ barrier_align (barrier_or_label)
       if (prev
          && GET_CODE (prev) == JUMP_INSN
          && JUMP_LABEL (prev)
-         && (jump_to_next || next_real_insn (JUMP_LABEL (prev)) == next))
+         && (jump_to_next || next_real_insn (JUMP_LABEL (prev)) == next
+             /* If relax_delay_slots() decides NEXT was redundant
+                with some previous instruction, it will have
+                redirected PREV's jump to the following insn.  */
+             || JUMP_LABEL (prev) == next_nonnote_insn (next)))
        {
          rtx pat = PATTERN (prev);
          if (GET_CODE (pat) == PARALLEL)