diff options
author | Richard Henderson <rth@redhat.com> | 2005-01-05 20:09:11 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-01-05 20:09:11 -0800 |
commit | 19f17bb9a0c599d6424919104de1ba79a060a24e (patch) | |
tree | ea183445fdb32ce4ab64d1cbd167fb3a7519a6e8 /gcc | |
parent | 2070df3c393a07acf532e57051136bdccccb8911 (diff) | |
download | gcc-19f17bb9a0c599d6424919104de1ba79a060a24e.zip gcc-19f17bb9a0c599d6424919104de1ba79a060a24e.tar.gz gcc-19f17bb9a0c599d6424919104de1ba79a060a24e.tar.bz2 |
re PR rtl-optimization/10692 ([m68k] miscompilation of perl with -O2 -fPIC)
PR rtl-opt/10692
* reload1.c (do_input_reload): Restrict the optimization deleteing
a previous output reload to RELOAD_FOR_INPUT.
From-SVN: r92984
Diffstat (limited to 'gcc')
-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 281c9db..078a19e 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 1fec0cd..df7580e 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) |