From 5bb08c847fa53bc7d6e4c835f4ba4fcf4ca1fdf3 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sun, 9 Sep 2001 10:45:21 +0200 Subject: [PATCH] * loop.c (combine_givs): Fix computing of benefit once giv is combined. From-SVN: r45494 --- gcc/ChangeLog | 4 ++++ gcc/loop.c | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fddbac35d20..dbf705c5366 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sun Sep 9 10:43:17 CEST 2001 Jan Hubicka + + * loop.c (combine_givs): Fix computing of benefit once giv is combined. + 2001-09-09 Richard Henderson * config/alpha/alpha.c (alpha_next_sequence_number): New. diff --git a/gcc/loop.c b/gcc/loop.c index 990826a5a7d..ef1b7ee3ea8 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; -- 2.30.2