diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-06 04:09:11 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-06 04:09:11 +0000 |
| commit | 96a73e23284366c8a71abdc74cd873a3b09e0482 (patch) | |
| tree | ea183445fdb32ce4ab64d1cbd167fb3a7519a6e8 | |
| parent | 3b18e5e3997b463ce091d5dd322459b488d27b88 (diff) | |
| download | ppe42-gcc-96a73e23284366c8a71abdc74cd873a3b09e0482.tar.gz ppe42-gcc-96a73e23284366c8a71abdc74cd873a3b09e0482.zip | |
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@92984 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/reload1.c | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 281c9dbadf5..078a19e702b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +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. + 2005-01-05 Steven Bosscher <stevenb@suse.de> * combine.c (expand_compound_operation) <ZERO_EXTRACT>: Add diff --git a/gcc/reload1.c b/gcc/reload1.c index 1fec0cdcc43..df7580e20b7 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -6822,6 +6822,10 @@ 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) |

