This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH PR64746]


On Fri, Jan 23, 2015 at 5:35 PM, Yuri Rumyantsev <ysrumyan@gmail.com> wrote:
> Hi All,
>
> In a process of testing omp-simd tests we found out that couple
> important benchmark did not show any speed-up with aggressive
> if-conversion since the hottest loops have not been vectorized.
> Here is a simple patch that resolves vectorization issue related to
> aggressive if-conversion:
> (1) Use the only mask for load/store of given size;
> (2) Use iterative algorithm to remove all multiple predicate uses in
> pattern tree - splitting of predicate definition may introduce new
> variable with multiple uses.
>
> Reproducer is included to patch.
>
> Bootstrap and regression testing did not show any new failures.
>
> Is it OK for trunk?

Ok.

Thanks,
Richard.

> 2015-01-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
>
> PR tree-optimization/64746
> * tree-if-conv.c (mask_exists): New function.
> (predicate_mem_writes): Save created mask with given size for further
> use.
> (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
> (ifcvt_repair_bool_pattern): Collect all statements that are root
> of bool pattern and use iterative algorithm to remove multiple uses
> of predicates, display number of required iterations.
>
> gcc/testsuite/ChangeLog
>
> * gcc.target/i386/avx2-vect-aggressive-1.c: New test.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]