aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorNathan Froyd <froydnj@gcc.gnu.org>2010-11-24 23:32:29 +0000
committerNathan Froyd <froydnj@gcc.gnu.org>2010-11-24 23:32:29 +0000
commita3c1f9efdb3a8507adba00fe24d67b7df7e3c54f (patch)
tree2c4e12dc2765003fb2fbc7f4ec6f43b79539a187 /gcc/reload1.c
parenta3abe41c30c8f779e203452a0b31a33b825565c7 (diff)
downloadgcc-a3c1f9efdb3a8507adba00fe24d67b7df7e3c54f.zip
gcc-a3c1f9efdb3a8507adba00fe24d67b7df7e3c54f.tar.gz
gcc-a3c1f9efdb3a8507adba00fe24d67b7df7e3c54f.tar.bz2
revert accidentally committed changes
From-SVN: r167130
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 2f02ae3..da354a7 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -6600,6 +6600,17 @@ choose_reload_regs (struct insn_chain *chain)
&& (rld[r].nregs == max_group_size
|| ! reg_classes_intersect_p (rld[r].rclass, group_class)))
search_equiv = rld[r].in;
+ /* If this is an output reload from a simple move insn, look
+ if an equivalence for the input is available. */
+ else if (inheritance && rld[r].in == 0 && rld[r].out != 0)
+ {
+ rtx set = single_set (insn);
+
+ if (set
+ && rtx_equal_p (rld[r].out, SET_DEST (set))
+ && CONSTANT_P (SET_SRC (set)))
+ search_equiv = SET_SRC (set);
+ }
if (search_equiv)
{