diff options
author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-04-17 15:29:34 +0000 |
---|---|---|
committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-04-17 15:29:34 +0000 |
commit | 759d3f800581dea456831c33b6312388687c1120 (patch) | |
tree | fd0b64bc3ce899a06a2c0e1d070967984f1085ae /gcc/reload1.c | |
parent | c820a7e75f47efabdcbf89461652561666ad5b50 (diff) | |
download | gcc-759d3f800581dea456831c33b6312388687c1120.tar.gz |
* reload1.c (delete_output_reload): Don't count output in n_inherited.
Revert
2005-01-05 Richard Henderson <rth@redhat.com>
PR rtl-opt/10692
* reload1.c (do_input_reload): Restrict the optimization deleteing
a previous output reload to RELOAD_FOR_INPUT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123913 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 9a56fc40bd0..8c698ef3399 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -7156,10 +7156,6 @@ do_input_reload (struct insn_chain *chain, struct reload *rl, int j) actually no need to store the old value in it. */ if (optimize - /* Only attempt this for input reloads; for RELOAD_OTHER we miss - that there may be multiple uses of the previous output reload. - Restricting to RELOAD_FOR_INPUT is mostly paranoia. */ - && rl->when_needed == RELOAD_FOR_INPUT && (reload_inherited[j] || reload_override_in[j]) && rl->reg_rtx && REG_P (rl->reg_rtx) @@ -8010,16 +8006,7 @@ delete_output_reload (rtx insn, int j, int last_reload_reg) if (rtx_equal_p (reg2, reg)) { if (reload_inherited[k] || reload_override_in[k] || k == j) - { - n_inherited++; - reg2 = rld[k].out_reg; - if (! reg2) - continue; - while (GET_CODE (reg2) == SUBREG) - reg2 = XEXP (reg2, 0); - if (rtx_equal_p (reg2, reg)) - n_inherited++; - } + n_inherited++; else return; } |