aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-09-09 10:45:21 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2001-09-09 08:45:21 +0000
commit5bb08c847fa53bc7d6e4c835f4ba4fcf4ca1fdf3 (patch)
tree0a5c30ced0389a2e395fdf18fe927e3da06fdbe9 /gcc
parent1eb356b98df2a898b6650c7641d629fcf3db0c30 (diff)
downloadgcc-5bb08c847fa53bc7d6e4c835f4ba4fcf4ca1fdf3.zip
gcc-5bb08c847fa53bc7d6e4c835f4ba4fcf4ca1fdf3.tar.gz
gcc-5bb08c847fa53bc7d6e4c835f4ba4fcf4ca1fdf3.tar.bz2
* loop.c (combine_givs): Fix computing of benefit once giv is combined.
From-SVN: r45494
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/loop.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fddbac3..dbf705c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Sun Sep 9 10:43:17 CEST 2001 Jan Hubicka <jh@suse.cz>
+
+ * loop.c (combine_givs): Fix computing of benefit once giv is combined.
+
2001-09-09 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (alpha_next_sequence_number): New.
diff --git a/gcc/loop.c b/gcc/loop.c
index 990826a..ef1b7ee 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -6851,6 +6851,13 @@ restart:
g2->new_reg = can_combine[i * giv_count + j];
g2->same = g1;
+ /* For destination, we now may replace by mem expression instead
+ of register. This changes the costs considerably, so add the
+ compensation. */
+ if (g2->giv_type == DEST_ADDR)
+ g2->benefit = (g2->benefit + reg_address_cost
+ - address_cost (g2->new_reg,
+ GET_MODE (g2->mem)));
g1->combined_with++;
g1->lifetime += g2->lifetime;