aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-06-26 21:19:02 +0000
committerRichard Stallman <rms@gnu.org>1993-06-26 21:19:02 +0000
commit73f6789529c29c8c302d9d078bbbf0fd07477804 (patch)
treee337c36dc4338ce5f034bdfc59067b79e4aca62a
parent6491dbbb8121b9afa1400b9c1143b9eb32b4da65 (diff)
downloadgcc-73f6789529c29c8c302d9d078bbbf0fd07477804.zip
gcc-73f6789529c29c8c302d9d078bbbf0fd07477804.tar.gz
gcc-73f6789529c29c8c302d9d078bbbf0fd07477804.tar.bz2
(find_reloads): When merging reloads again after they have been changed...
(find_reloads): When merging reloads again after they have been changed, do check reload_reg_class and reload_nocombine. From-SVN: r4762
-rw-r--r--gcc/reload.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index 868c967..2a0026c 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -3506,7 +3506,9 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
for (j = 0; j < n_reloads; j++)
if (i != j && reload_in[j] != 0 && reload_out[j] == 0
&& reload_when_needed[j] == reload_when_needed[i]
- && MATCHES (reload_in[i], reload_in[j]))
+ && MATCHES (reload_in[i], reload_in[j])
+ && reload_reg_class[i] == reload_reg_class[j]
+ && !reload_nocombine[i] && !reload_nocombine[j])
{
reload_opnum[i] = MIN (reload_opnum[i], reload_opnum[j]);
transfer_replacements (i, j);