On Tue, May 26, 2015 at 1:04 PM, Bin Cheng <bin.ch...@arm.com> wrote:
> Hi,
> My first part patch improving how we handle overflow in scev is posted at
> https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01795.html .  Here comes the
> second part patch.
>
> This patch does below improvements:
>   1) Computes and records control iv for each loop's exit edge.  This
> provides a way to compute overflow information in loop niter and use it in
> different customers.  It think it's useful, especially with option
> -funsafe-loop-optimizers.
>   2) Improve chrec_convert by adding new interface
> loop_exits_before_overflow.  It checks if a converted IV overflows wrto its
> type and loop using overflow information of loop's control iv.  This
> basically propagates no-overflow information from control iv to ivs
> converted from control iv.  Moreover, we can further improve the logic by
> using possible VRP information in the future.

But 2) you already posted (and I have approved it but you didn't commit yet?).

Can you commit that approved patch and only send the parts I didn't approve
yet?

Thanks,
Richard.

> With this patch, cases like scev-9.c and scev-10.c in patch can be handled
> now.  Cases reported in PR48052 can be vectorized too.
> Opinions?
>
> Thanks,
> bin
>
>
> 2015-05-26  Bin Cheng  <bin.ch...@arm.com>
>
>         * cfgloop.h (struct control_iv): New.
>         (struct loop): New field control_ivs.
>         * tree-ssa-loop-niter.c : Include "stor-layout.h".
>         (number_of_iterations_lt): Set no_overflow information.
>         (number_of_iterations_exit): Init control iv in niter struct.
>         (record_control_iv): New.
>         (estimate_numbers_of_iterations_loop): Call record_control_iv.
>         (loop_exits_before_overflow): New.  Interface factored out of
>         scev_probably_wraps_p.
>         (scev_probably_wraps_p): Factor loop niter related code into
>         loop_exits_before_overflow.
>         (free_numbers_of_iterations_estimates_loop): Free control ivs.
>         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
>
> gcc/testsuite/ChangeLog
> 2015-05-26  Bin Cheng  <bin.ch...@arm.com>
>
>         PR tree-optimization/48052
>         * gcc.dg/tree-ssa/scev-8.c: New.
>         * gcc.dg/tree-ssa/scev-9.c: New.
>         * gcc.dg/tree-ssa/scev-10.c: New.
>         * gcc.dg/vect/pr48052.c: New.
>

Reply via email to