diff options
author | Nathan Froyd <froydnj@gcc.gnu.org> | 2012-07-27 21:01:16 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2012-07-27 21:01:16 +0000 |
commit | 5322d07e9c687b4340c4043a11518973e2d6ed9f (patch) | |
tree | e8b3b1b9c2c77f0a8c479de66cf8c543700e8f44 /gcc/tree-ssa-loop-ivopts.c | |
parent | ccbc132f872fbe614066238abd97301248f3d5f8 (diff) | |
download | gcc-5322d07e9c687b4340c4043a11518973e2d6ed9f.zip gcc-5322d07e9c687b4340c4043a11518973e2d6ed9f.tar.gz gcc-5322d07e9c687b4340c4043a11518973e2d6ed9f.tar.bz2 |
expmed.h (alg_hash, [...]): Delete macro definitions and re-purpose as inline functions.
* expmed.h (alg_hash, alg_hash_used_p, sdiv_pow2_cheap,
smod_pow2_cheap, zero_cost, add_cost, neg_cost, shift_cost)
shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost,
sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete
macro definitions and re-purpose as inline functions.
(alg_hash_entry_ptr, set_alg_hash_used_p, sdiv_pow2_cheap_ptr,
set_sdiv_pow2_cheap, smod_pow2_cheap_ptr, set_smod_pow2_cheap,
zero_cost_ptr, set_zero_cost, add_cost_ptr, set_add_cost,
neg_cost_ptr, set_neg_cost, shift_cost_ptr, set_shift_cost,
shiftadd_cost_ptr, set_shiftadd_cost, shiftsub0_cost_ptr,
set_shiftsub0_cost, shiftsub1_cost_ptr, set_shiftsub1_cost,
mul_cost_ptr, set_mul_cost, sdiv_cost_ptr, set_sdiv_cost,
udiv_cost_ptr, set_udiv_cost, mul_widen_cost_ptr,
set_mul_widen_cost, mul_highpart_cost_ptr, set_mul_highpart_cost):
New functions.
(convert_cost_ptr): New function, split out from...
(set_convert_cost, convert_cost): ...here.
* expmed.c, tree-ssa-loop-ivopts.c: Update for new functions.
* gimple-ssa-strength-reduction.c: Likewise.
From-SVN: r189919
Diffstat (limited to 'gcc/tree-ssa-loop-ivopts.c')
-rw-r--r-- | gcc/tree-ssa-loop-ivopts.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c index 0d3e1bf..41c811f 100644 --- a/gcc/tree-ssa-loop-ivopts.c +++ b/gcc/tree-ssa-loop-ivopts.c @@ -3308,7 +3308,7 @@ get_address_cost (bool symbol_present, bool var_present, If VAR_PRESENT is true, try whether the mode with SYMBOL_PRESENT = false is cheaper even with cost of addition, and if this is the case, use it. */ - add_c = add_cost[speed][address_mode]; + add_c = add_cost (speed, address_mode); for (i = 0; i < 8; i++) { var_p = i & 1; @@ -3392,7 +3392,7 @@ get_address_cost (bool symbol_present, bool var_present, cost += mult_by_coeff_cost (ratio, address_mode, speed); if (s_offset && !offset_p && !symbol_present) - cost += add_cost[speed][address_mode]; + cost += add_cost (speed, address_mode); if (may_autoinc) *may_autoinc = autoinc; @@ -3422,10 +3422,10 @@ get_shiftadd_cost (tree expr, enum machine_mode mode, comp_cost cost0, return false; sa_cost = (TREE_CODE (expr) != MINUS_EXPR - ? shiftadd_cost[speed][mode][m] + ? shiftadd_cost (speed, mode, m) : (mult == op1 - ? shiftsub1_cost[speed][mode][m] - : shiftsub0_cost[speed][mode][m])); + ? shiftsub1_cost (speed, mode, m) + : shiftsub0_cost (speed, mode, m))); res = new_cost (sa_cost, 0); res = add_costs (res, mult == op1 ? cost0 : cost1); @@ -3559,7 +3559,7 @@ force_expr_to_var_cost (tree expr, bool speed) case PLUS_EXPR: case MINUS_EXPR: case NEGATE_EXPR: - cost = new_cost (add_cost[speed][mode], 0); + cost = new_cost (add_cost (speed, mode), 0); if (TREE_CODE (expr) != NEGATE_EXPR) { tree mult = NULL_TREE; @@ -3571,8 +3571,8 @@ force_expr_to_var_cost (tree expr, bool speed) if (mult != NULL_TREE && cst_and_fits_in_hwi (TREE_OPERAND (mult, 1)) - && get_shiftadd_cost (expr, mode, cost0, cost1, mult, speed, - &sa_cost)) + && get_shiftadd_cost (expr, mode, cost0, cost1, mult, + speed, &sa_cost)) return sa_cost; } break; @@ -4060,7 +4060,7 @@ get_computation_cost_at (struct ivopts_data *data, &symbol_present, &var_present, &offset, depends_on)); cost.cost /= avg_loop_niter (data->current_loop); - cost.cost += add_cost[data->speed][TYPE_MODE (ctype)]; + cost.cost += add_cost (data->speed, TYPE_MODE (ctype)); } if (inv_expr_id) @@ -4101,14 +4101,14 @@ get_computation_cost_at (struct ivopts_data *data, are added once to the variable, if present. */ if (var_present && (symbol_present || offset)) cost.cost += adjust_setup_cost (data, - add_cost[speed][TYPE_MODE (ctype)]); + add_cost (speed, TYPE_MODE (ctype))); /* Having offset does not affect runtime cost in case it is added to symbol, but it increases complexity. */ if (offset) cost.complexity++; - cost.cost += add_cost[speed][TYPE_MODE (ctype)]; + cost.cost += add_cost (speed, TYPE_MODE (ctype)); aratio = ratio > 0 ? ratio : -ratio; if (aratio != 1) @@ -4958,7 +4958,7 @@ determine_iv_cost (struct ivopts_data *data, struct iv_cand *cand) or a const set. */ if (cost_base.cost == 0) cost_base.cost = COSTS_N_INSNS (1); - cost_step = add_cost[data->speed][TYPE_MODE (TREE_TYPE (base))]; + cost_step = add_cost (data->speed, TYPE_MODE (TREE_TYPE (base))); cost = cost_step + adjust_setup_cost (data, cost_base.cost); |