diff options
author | Nathan Froyd <froydnj@gcc.gnu.org> | 2010-11-24 23:32:29 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2010-11-24 23:32:29 +0000 |
commit | a3c1f9efdb3a8507adba00fe24d67b7df7e3c54f (patch) | |
tree | 2c4e12dc2765003fb2fbc7f4ec6f43b79539a187 /gcc/reload1.c | |
parent | a3abe41c30c8f779e203452a0b31a33b825565c7 (diff) | |
download | gcc-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.c | 11 |
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) { |