Hi,
This patch simplifies function get_scaled_computation_cost_at and the dump 
information.

Is it OK?

Thanks,
bin
2017-04-11  Bin Cheng  <bin.ch...@arm.com>

        * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
        parameter cand.  Update dump information.
        (get_computation_cost): Update uses.
From e31e329139d5d37f0553904635097fac815ae6b4 Mon Sep 17 00:00:00 2001
From: Bin Cheng <binch...@e108451-lin.cambridge.arm.com>
Date: Wed, 1 Mar 2017 11:24:02 +0000
Subject: [PATCH 10/33] cost-scaling-dump-info-20170220.txt

---
 gcc/tree-ssa-loop-ivopts.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index 4b6eda1..556bdc8 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -4783,12 +4783,11 @@ get_loop_invariant_expr (struct ivopts_data *data, tree 
ubase,
 }
 
 /* Scale (multiply) the computed COST (except scratch part that should be
-   hoisted out a loop) by header->frequency / AT->frequency,
-   which makes expected cost more accurate.  */
+   hoisted out a loop) by header->frequency / AT->frequency, which makes
+   expected cost more accurate.  */
 
 static comp_cost
-get_scaled_computation_cost_at (ivopts_data *data, gimple *at, iv_cand *cand,
-                               comp_cost cost)
+get_scaled_computation_cost_at (ivopts_data *data, gimple *at, comp_cost cost)
 {
    int loop_freq = data->current_loop->header->frequency;
    int bb_freq = gimple_bb (at)->frequency;
@@ -4799,9 +4798,9 @@ get_scaled_computation_cost_at (ivopts_data *data, gimple 
*at, iv_cand *cand,
         = cost.scratch + (cost.cost - cost.scratch) * bb_freq / loop_freq;
 
        if (dump_file && (dump_flags & TDF_DETAILS))
-        fprintf (dump_file, "Scaling iv_use based on cand %d "
+        fprintf (dump_file, "Scaling cost based on bb prob "
                  "by %2.2f: %d (scratch: %d) -> %d (%d/%d)\n",
-                 cand->id, 1.0f * bb_freq / loop_freq, cost.cost,
+                 1.0f * bb_freq / loop_freq, cost.cost,
                  cost.scratch, scaled_cost, bb_freq, loop_freq);
 
        cost.cost = scaled_cost;
@@ -4997,7 +4996,7 @@ get_computation_cost (struct ivopts_data *data, struct 
iv_use *use,
                                mem_mode,
                                TYPE_ADDR_SPACE (TREE_TYPE (utype)),
                                speed, stmt_is_after_inc, can_autoinc);
-      return get_scaled_computation_cost_at (data, at, cand, cost);
+      return get_scaled_computation_cost_at (data, at, cost);
     }
 
   /* Otherwise estimate the costs for computing the expression.  */
@@ -5005,7 +5004,7 @@ get_computation_cost (struct ivopts_data *data, struct 
iv_use *use,
     {
       if (ratio != 1)
        cost += mult_by_coeff_cost (ratio, TYPE_MODE (ctype), speed);
-      return get_scaled_computation_cost_at (data, at, cand, cost);
+      return get_scaled_computation_cost_at (data, at, cost);
     }
 
   /* Symbol + offset should be compile-time computable so consider that they
@@ -5025,7 +5024,7 @@ get_computation_cost (struct ivopts_data *data, struct 
iv_use *use,
   if (aratio != 1)
     cost += mult_by_coeff_cost (aratio, TYPE_MODE (ctype), speed);
 
-  return get_scaled_computation_cost_at (data, at, cand, cost);
+  return get_scaled_computation_cost_at (data, at, cost);
 
 fallback:
   if (can_autoinc)
@@ -5042,7 +5041,7 @@ fallback:
 
   cost = comp_cost (computation_cost (comp, speed), 0);
 
-  return get_scaled_computation_cost_at (data, at, cand, cost);
+  return get_scaled_computation_cost_at (data, at, cost);
 }
 
 /* Determines cost of computing the use in GROUP with CAND in a generic
-- 
1.9.1

Reply via email to