summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-ivopts.c
diff options
context:
space:
mode:
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-22 22:08:53 +0000
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-22 22:08:53 +0000
commita1b673caf38af231b55ce4d3c2e1c36ab2af5891 (patch)
tree5448de2804cc76994e55daf1afdcd5fa16c6bbf3 /gcc/tree-ssa-loop-ivopts.c
parent4dd3972ff66dfc20923ded41554dbb74b609637d (diff)
downloadgcc-a1b673caf38af231b55ce4d3c2e1c36ab2af5891.tar.gz
* tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
artificial original candidates. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96894 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-loop-ivopts.c')
-rw-r--r--gcc/tree-ssa-loop-ivopts.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index 877f5e45a03..2544fbc966a 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