summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>1999-12-02 19:09:23 +0000
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>1999-12-02 19:09:23 +0000
commitc4d8b2f4c8563e90f5c98545006818179746c2f9 (patch)
treee82854703e87c6b4e41dd5d2a8388be982b12a65
parent2bba16fb66ea015e9d79d06b5370bb445a64df1f (diff)
downloadppe42-gcc-c4d8b2f4c8563e90f5c98545006818179746c2f9.tar.gz
ppe42-gcc-c4d8b2f4c8563e90f5c98545006818179746c2f9.zip
* combine.c (try_combine): Before fixing up LOG_LINKS for the
i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30762 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/combine.c29
2 files changed, 21 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f16bf43704c..c7e9bb5065c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Dec 2 18:59:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * combine.c (try_combine): Before fixing up LOG_LINKS for the
+ i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
+
1999-12-02 Gavin Romig-Koch <gavin@cygnus.com>
* invoke.texi: Document the mips option -mno-crt0
diff --git a/gcc/combine.c b/gcc/combine.c
index bc24ce9ae5e..f55bb669976 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -2448,19 +2448,22 @@ try_combine (i3, i2, i1)
if (i3_subst_into_i2)
{
- for (i = 0; i < XVECLEN (PATTERN (i2), 0); i++)
- if (GET_CODE (SET_DEST (XVECEXP (PATTERN (i2), 0, i))) == REG
- && SET_DEST (XVECEXP (PATTERN (i2), 0, i)) != i2dest
- && ! find_reg_note (i2, REG_UNUSED,
- SET_DEST (XVECEXP (PATTERN (i2), 0, i))))
- for (temp = NEXT_INSN (i2);
- temp && (this_basic_block == n_basic_blocks - 1
- || BLOCK_HEAD (this_basic_block) != temp);
- temp = NEXT_INSN (temp))
- if (temp != i3 && GET_RTX_CLASS (GET_CODE (temp)) == 'i')
- for (link = LOG_LINKS (temp); link; link = XEXP (link, 1))
- if (XEXP (link, 0) == i2)
- XEXP (link, 0) = i3;
+ if (GET_CODE (PATTERN (i2)) == PARALLEL)
+ {
+ for (i = 0; i < XVECLEN (PATTERN (i2), 0); i++)
+ if (GET_CODE (SET_DEST (XVECEXP (PATTERN (i2), 0, i))) == REG
+ && SET_DEST (XVECEXP (PATTERN (i2), 0, i)) != i2dest
+ && ! find_reg_note (i2, REG_UNUSED,
+ SET_DEST (XVECEXP (PATTERN (i2), 0, i))))
+ for (temp = NEXT_INSN (i2);
+ temp && (this_basic_block == n_basic_blocks - 1
+ || BLOCK_HEAD (this_basic_block) != temp);
+ temp = NEXT_INSN (temp))
+ if (temp != i3 && GET_RTX_CLASS (GET_CODE (temp)) == 'i')
+ for (link = LOG_LINKS (temp); link; link = XEXP (link, 1))
+ if (XEXP (link, 0) == i2)
+ XEXP (link, 0) = i3;
+ }
if (i3notes)
{
OpenPOWER on IntegriCloud