On Fri, May 6, 2016 at 11:19 AM, Martin Liška <mli...@suse.cz> wrote:
> Hi.
>
> Honza asked me to explain the change more verbosely.
> The patch simplify enhances verbose dump of IVOPTS so that
> # of iterations is printed. Apart from that it also prints
> invariant expression that are used during the algorithm which
> considers a set of candidates which is improved.
>
> Main motivation for doing this was that sometimes the optimization
> considers a constant integer as invariant expression (Bin Cheng
> is working on removal of these) and that both IVs and IE are considered
> by the cost model to occupy a register. Which is not ideal and
> it sometimes tend to introduce more IVs that one would expect.
>
> === New format ===:
> Improved to:
>   cost: 27 (complexity 2)
>   cand_cost: 11
>   cand_group_cost: 10 (complexity 2)
>   candidates: 3, 5
>    group:0 --> iv_cand:5, cost=(2,0)
>    group:1 --> iv_cand:5, cost=(4,1)
>    group:2 --> iv_cand:5, cost=(4,1)
>    group:3 --> iv_cand:3, cost=(0,0)
>    group:4 --> iv_cand:3, cost=(0,0)
>   invariants 1, 6
>   used invariant expressions:
>    inv_expr:3:  ((sizetype) _976 - (sizetype) _922) * 4
>    inv_expr:6:  ((sizetype) _1335 - (sizetype) _922) * 4
>
>
> Original cost 27 (complexity 2)
>
> Final cost 27 (complexity 2)
>
> Selected IV set for loop 96 at original.f90:820, 5 avg niters, 2 expressions, 
> 2 IVs:
>
> === Before ===:
>
> Improved to:
>   cost: 27 (complexity 2)
>   cand_cost: 11
>   cand_group_cost: 10 (complexity 2)
>   candidates: 3, 5
>    group:0 --> iv_cand:5, cost=(2,0)
>    group:1 --> iv_cand:5, cost=(4,1)
>    group:2 --> iv_cand:5, cost=(4,1)
>    group:3 --> iv_cand:3, cost=(0,0)
>    group:4 --> iv_cand:3, cost=(0,0)
>   invariants 1, 6
>
> Original cost 27 (complexity 2)
>
> Final cost 27 (complexity 2)
>
> Selected IV set for loop 96 at original.f90:820, 2 IVs:

But it slows donw compile-time just for enhanced dump files.  Can you
make the new
hash-map conditional on dumping?

Richard.

>
> Martin

Reply via email to