diff options
author | Richard Stallman <rms@gnu.org> | 1992-10-26 05:51:04 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-10-26 05:51:04 +0000 |
commit | 58b1581b23694181ffde4cea00c941727379d050 (patch) | |
tree | bbbb3ef4fab551c86480bb4a030b999313a8fda1 | |
parent | 37548fa3f38cafca60e654671cec44c2ae93283b (diff) | |
download | gcc-58b1581b23694181ffde4cea00c941727379d050.zip gcc-58b1581b23694181ffde4cea00c941727379d050.tar.gz gcc-58b1581b23694181ffde4cea00c941727379d050.tar.bz2 |
(emit_reload_insns): If not -O, Don't try find_equiv_reg.
(choose_reload_regs): If not -O, don't inherit reloads.
From-SVN: r2607
-rw-r--r-- | gcc/reload1.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index d9b325b..88c5e6d 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -4288,9 +4288,13 @@ choose_reload_regs (insn, avoid_return_reg) COPY_HARD_REG_SET (save_reload_reg_used_in_op_addr, reload_reg_used_in_op_addr); - /* Try first with inheritance, then turning it off. */ + /* If -O, try first with inheritance, then turning it off. + If not -O, don't do inheritance. + Using inheritance when not optimizing leads to paradoxes + with fp on the 68k: fp numbers (not NaNs) fail to be equal to themselves + because one side of the comparison might be inherited. */ - for (inheritance = 1; inheritance >= 0; inheritance--) + for (inheritance = optimize > 0; inheritance >= 0; inheritance--) { /* Process the reloads in order of preference just found. Beyond this point, subregs can be found in reload_reg_rtx. @@ -4763,7 +4767,8 @@ emit_reload_insns (insn) register. */ if (reload_secondary_reload[j] >= 0 - && reload_secondary_icode[j] == CODE_FOR_nothing) + && reload_secondary_icode[j] == CODE_FOR_nothing + && optimize) oldequiv = find_equiv_reg (old, insn, reload_reg_class[reload_secondary_reload[j]], @@ -4778,7 +4783,7 @@ emit_reload_insns (insn) or has yet to be emitted, in which case it doesn't matter because we will use this equiv reg right away. */ - if (oldequiv == 0 + if (oldequiv == 0 && optimize && (GET_CODE (old) == MEM || (GET_CODE (old) == REG && REGNO (old) >= FIRST_PSEUDO_REGISTER |