diff options
| author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-10-28 19:36:04 +0000 |
|---|---|---|
| committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-10-28 19:36:04 +0000 |
| commit | 0e460feb6f2c7352df8bcfd754486716a2d9c2e6 (patch) | |
| tree | 8fa2ed45b53c76593168ff3146bcd5bb17ba6a54 | |
| parent | 1aa1d9dadcdc8e202223dd01e4f3344fba52ca89 (diff) | |
| download | ppe42-gcc-0e460feb6f2c7352df8bcfd754486716a2d9c2e6.tar.gz ppe42-gcc-0e460feb6f2c7352df8bcfd754486716a2d9c2e6.zip | |
Never set reload_override_in for optional reloads.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37103 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 2 | ||||
| -rw-r--r-- | gcc/reload1.c | 15 |
2 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c0653d8ce91..755ad30eb11 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -3,6 +3,8 @@ * reload.c (find_reloads): Distinguish "wins" so that we know whether a given operand won because of a matching constraint or not; then use that information to compute goal_alternative_matched properly. + * reload1.c (choose_reload_regs): Never set reload_override_in for an + optional reload. 2000-10-28 Neil Booth <neilb@earthling.net> diff --git a/gcc/reload1.c b/gcc/reload1.c index c194361118d..66c98f54595 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -5417,9 +5417,12 @@ choose_reload_regs (chain) || (rld[r].out && rld[r].reg_rtx && rtx_equal_p (rld[r].out, rld[r].reg_rtx))) { - reload_override_in[r] = last_reg; - reload_inheritance_insn[r] - = reg_reloaded_insn[i]; + if (! rld[r].optional) + { + reload_override_in[r] = last_reg; + reload_inheritance_insn[r] + = reg_reloaded_insn[i]; + } } else { @@ -5518,7 +5521,8 @@ choose_reload_regs (chain) if (reg_overlap_mentioned_for_reload_p (equiv, reload_earlyclobbers[i])) { - reload_override_in[r] = equiv; + if (! rld[r].optional) + reload_override_in[r] = equiv; equiv = 0; break; } @@ -5541,7 +5545,8 @@ choose_reload_regs (chain) case RELOAD_OTHER: case RELOAD_FOR_INPUT: case RELOAD_FOR_OPERAND_ADDRESS: - reload_override_in[r] = equiv; + if (! rld[r].optional) + reload_override_in[r] = equiv; /* Fall through. */ default: equiv = 0; |

