On Thu, Feb 16, 2017 at 6:48 PM, Bin Cheng <bin.ch...@arm.com> wrote:
> Hi,
> After fixing PR79347, the main problem with vectorizer is we scale down 
> profiling counters
> for vect_loop by VF, regardless of context CFG's profiling information.  This 
> is wrong and
> sometimes makes vect_loop not hot code, which may confuses following 
> optimizers.  This
> patch generates well-formed profiling information as generic tree unroller 
> does.  It borrows
> code from tree-ssa-loop-manip.c and does small refactors to existing code.  
> Vectorizer will
> not introduce mismatch counters with it, and unroll and vrp2 are the two 
> major passes
> messing up profiling counters now.  Though it removes all mismatch in 
> vectorizer, I am not
> sure if this counts as a regression fix.
> BTW, it may also help PR78116?  Hi Pat, could you please help verify this?  
> Thanks!
>
> Bootstrap and test on x86_64 and AArch64 ongoing.  Is it OK if no failures?

The patch looks good to me but please wait for Honza to comment.

Thanks,
Richard.

> Thanks,
> bin
>
> 2017-02-16  Bin Cheng  <bin.ch...@arm.com>
>
>         PR tree-optimization/77536
>         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
>         (tree_transform_and_unroll_loop): Use above function to compute the
>         estimated niter of unrolled loop.
>         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
>         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
>         (vect_transform_loop): Call above function.
>
> gcc/testsuite/ChangeLog
> 2017-02-16  Bin Cheng  <bin.ch...@arm.com>
>
>         PR tree-optimization/77536
>         * gcc.dg/vect/pr79347.c: Revise testing string.

Reply via email to