aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>2012-11-05 17:16:33 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2012-11-05 17:16:33 +0000
commit8db13a7fd8710eabe8cff7234a4d18ca97a679e5 (patch)
treedaeb4e311261f9ab431f2314fde4680b5d48c608
parent1bdc4b116e7089ebe2cb39075eaf109c36f6167c (diff)
downloadgcc-8db13a7fd8710eabe8cff7234a4d18ca97a679e5.zip
gcc-8db13a7fd8710eabe8cff7234a4d18ca97a679e5.tar.gz
gcc-8db13a7fd8710eabe8cff7234a4d18ca97a679e5.tar.bz2
reorg.c (fill_simple_delay_slots): Avoid calling optimize_skip with a return instruction.
* reorg.c (fill_simple_delay_slots): Avoid calling optimize_skip with a return instruction. From-SVN: r193171
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reorg.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fd357b4..6128012 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/reorg.c b/gcc/reorg.c
index aa6ad78..90ea42e 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -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)