aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-04-24 11:24:57 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-04-24 11:24:57 -0400
commitf4a3cd05d0baada37c17e49fdcf21ac313e5a387 (patch)
tree2b3cde2fc341d1601c3646da0b798ae0ecfb97fd
parente1469d0dd905f588293ea8901a97296737391147 (diff)
downloadgcc-f4a3cd05d0baada37c17e49fdcf21ac313e5a387.zip
gcc-f4a3cd05d0baada37c17e49fdcf21ac313e5a387.tar.gz
gcc-f4a3cd05d0baada37c17e49fdcf21ac313e5a387.tar.bz2
(try_split): Don't try to recursively split deleted insn.
From-SVN: r7143
-rw-r--r--gcc/emit-rtl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index aa85898..6c5b17a 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -2020,10 +2020,12 @@ try_split (pat, trial, last)
/* Recursively call try_split for each new insn created; by the
time control returns here that insn will be fully split, so
set LAST and continue from the insn after the one returned.
- We can't use next_active_insn here since AFTER may be a note. */
+ We can't use next_active_insn here since AFTER may be a note.
+ Ignore deleted insns, which can be occur if not optimizing. */
for (tem = NEXT_INSN (before); tem != after;
tem = NEXT_INSN (tem))
- tem = try_split (PATTERN (tem), tem, 1);
+ if (! INSN_DELETED_P (tem))
+ tem = try_split (PATTERN (tem), tem, 1);
}
/* Avoid infinite loop if the result matches the original pattern. */
else if (rtx_equal_p (seq, pat))