* reorg.c (fill_simple_delay_slots): Avoid calling optimize_skip
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Nov 2012 17:16:33 +0000 (17:16 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Nov 2012 17:16:33 +0000 (17:16 +0000)
with a return instruction.

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

gcc/ChangeLog
gcc/reorg.c

index fd357b4..6128012 100644 (file)
@@ -1,3 +1,8 @@
+2012-11-05  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       * reorg.c (fill_simple_delay_slots): Avoid calling optimize_skip
+       with a return instruction.
+
 2012-11-05  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR rtl-optimization/55151
index aa6ad78..90ea42e 100644 (file)
@@ -2196,7 +2196,8 @@ fill_simple_delay_slots (int non_jumps_p)
       if (slots_filled != slots_to_fill
          && delay_list == 0
          && JUMP_P (insn)
-         && (condjump_p (insn) || condjump_in_parallel_p (insn)))
+         && (condjump_p (insn) || condjump_in_parallel_p (insn))
+         && !ANY_RETURN_P (JUMP_LABEL (insn)))
        {
          delay_list = optimize_skip (insn);
          if (delay_list)