diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-ssa-loop-ivopts.c | 7 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a48a35e..9d0a7ef 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-03-22 Zdenek Dvorak <dvorakz@suse.cz> + + * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve + artificial original candidates. + 2005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de> Jan Hubicka <jh@suse.cz> Steven Bosscher <stevenb@suse.de diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c index 877f5e4..2544fbc 100644 --- a/gcc/tree-ssa-loop-ivopts.c +++ b/gcc/tree-ssa-loop-ivopts.c @@ -3681,8 +3681,11 @@ determine_iv_cost (struct ivopts_data *data, struct iv_cand *cand) cand->cost = cost_step + cost_base / AVG_LOOP_NITER (current_loop); - /* Prefer the original iv unless we may gain something by replacing it. */ - if (cand->pos == IP_ORIGINAL) + /* Prefer the original iv unless we may gain something by replacing it; + this is not really relevant for artificial ivs created by other + passes. */ + if (cand->pos == IP_ORIGINAL + && !DECL_ARTIFICIAL (SSA_NAME_VAR (cand->var_before))) cand->cost--; /* Prefer not to insert statements into latch unless there are some |