re PR target/34711 (g++.dg/tree-ssa/ivopts-1.C fails for power and arm)
authorZdenek Dvorak <ook@ucw.cz>
Sat, 26 Jan 2008 22:44:19 +0000 (23:44 +0100)
committerZdenek Dvorak <rakdver@gcc.gnu.org>
Sat, 26 Jan 2008 22:44:19 +0000 (22:44 +0000)
commit6e8c65f6621fb00e9008056c7e81860f2e96284c
tree30387dd4a3df50203ec75e44d117a5789e7adce1
parent2c80cb0ef7df9e250a0a7826a4414d0895c65027
re PR target/34711 (g++.dg/tree-ssa/ivopts-1.C fails for power and arm)

PR target/34711
* tree-ssa-loop-ivopts.c (comp_cost): New type.
(zero_cost, infinite_cost): New constants.
(struct cost_pair): Change type of cost to comp_cost.
(struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
(new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
New functions.
(set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
split_address_cost, ptr_difference_cost, difference_cost,
get_computation_cost_at, get_computation_cost,
determine_use_iv_cost_generic, determine_use_iv_cost_address,
determine_use_iv_cost_condition, determine_use_iv_costs,
cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
Change type of cost to comp_cost.
(determine_iv_cost): Increase cost of non-original ivs, instead
of decreasing the cost of original ones.
(get_address_cost): Indicate the complexity of the addressing mode
in comp_cost.
(try_add_cand_for): Prefer using ivs not specific to some object.
* tree-flow.h (force_expr_to_var_cost): Declaration removed.

From-SVN: r131877
gcc/ChangeLog
gcc/tree-flow.h
gcc/tree-ssa-loop-ivopts.c