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 /gcc/reload1.c | |
parent | 3b18e5e3997b463ce091d5dd322459b488d27b88 (diff) | |
download | gcc-96a73e23284366c8a71abdc74cd873a3b09e0482.tar.gz |
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
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 4 |
1 files changed, 4 insertions, 0 deletions
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) |