aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1999-07-08 10:07:30 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>1999-07-08 11:07:30 +0100
commitfe92fe26cd6d33388c3efd1ac230f3d59648e225 (patch)
treee698fdb48a1cc6b5ae3a47f644e586c796dc2ab1
parenta743d3409bfad8f04e8d695df736de5329e328e2 (diff)
downloadgcc-fe92fe26cd6d33388c3efd1ac230f3d59648e225.zip
gcc-fe92fe26cd6d33388c3efd1ac230f3d59648e225.tar.gz
gcc-fe92fe26cd6d33388c3efd1ac230f3d59648e225.tar.bz2
reload1.c (choose_reload_regs): Never call remove_adress_replacements when reload_out equals reload_in.
* reload1.c (choose_reload_regs): Never call remove_adress_replacements when reload_out equals reload_in. From-SVN: r28008
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload1.c7
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 88977e9..f56e53c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jul 8 18:03:19 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * reload1.c (choose_reload_regs): Never call remove_adress_replacements
+ when reload_out equals reload_in.
+
Thu Jul 8 16:50:14 1999 Nick Clifton <nickc@cygnus.com>
* invoke.texi (Spec Files): New node: Describe the contents of
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 123cbf5..24a37c5 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -6297,13 +6297,12 @@ choose_reload_regs (chain)
is mentioned in reload_in of the reload we are going to inherit.
A special case are auto_inc expressions; even if the input is
inherited, we still need the address for the output. We can
- recognize them because they have RELOAD_OUT set but not
- RELOAD_OUT_REG.
+ recognize them because they have RELOAD_OUT set to RELOAD_IN.
If we suceeded removing some reload and we are doing a preliminary
pass just to remove such reloads, make another pass, since the
removal of one reload might allow us to inherit another one. */
- else if ((! reload_out[r] || reload_out_reg[r])
- && reload_in[r]
+ else if (reload_in[r]
+ && reload_out[r] != reload_in[r]
&& remove_address_replacements (reload_in[r]) && pass)
pass = 2;
}