On Thu, Dec 7, 2017 at 12:55 PM, Bin.Cheng <amker.ch...@gmail.com> wrote:
> On Thu, Dec 7, 2017 at 11:39 AM, Richard Biener
> <richard.guent...@gmail.com> wrote:
>> On Thu, Dec 7, 2017 at 11:28 AM, Bin Cheng <bin.ch...@arm.com> wrote:
>>> Hi,
>>> This is the overall loop interchange patch on gimple-linterchange branch.  
>>> Note the new pass
>>> is enabled at -O3 level by default.  Bootstrap and regtest on x86_64 and 
>>> AArch64(ongoing).
>>> NOte after cost model change it is now far more conservative than original 
>>> version.  It only
>>> interchanges 11 loops in spec2k6 (416 doesn't build at the moment), vs ~250 
>>> for the original
>>> version.  I will collect compilation time data, though there shouldn't be 
>>> any surprise given
>>> few loops are actually interchanged.  I will also collect spec2k6 data, 
>>> shouldn't affect cases
>>> other than bwaves either.
>>> So is it OK?
>>
>> Please omit the no longer needed change to gsi_remove in
>> gimple-iterator.[ch].  The new
>> --params need documenting in invoke.texi.
> Here is the updated patch.  I added document for new parameters in
> invoke.texi, but the original patch doesn't have any change in
> gimple-iterator.[ch]?

Whoops, sorry - looked at the wrong one.  The updated patch with the
missed docs fixed
is ok.

Thanks,
Richard.

> Thanks,
> bin
>>
>> Ok with those changes.
>>
>> Thanks!
>> Richard.
>>
>>> Thanks,
>>> bin
>>> 2017-12-07  Bin Cheng  <bin.ch...@arm.com>
>>>             Richard Biener  <rguent...@suse.de>
>>>
>>>         PR tree-optimization/81303
>>>         * Makefile.in (gimple-loop-interchange.o): New object file.
>>>         * common.opt (floop-interchange): Reuse the option from graphite.
>>>         * doc/invoke.texi (-floop-interchange): Ditto.  New document for
>>>         -floop-interchange and mention it for -O3.
>>>         * opts.c (default_options_table): Enable -floop-interchange at -O3.
>>>         * gimple-loop-interchange.cc: New file.
>>>         * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter.
>>>         (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter.
>>>         * passes.def (pass_linterchange): New pass.
>>>         * timevar.def (TV_LINTERCHANGE): New time var.
>>>         * tree-pass.h (make_pass_linterchange): New declaration.
>>>         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external
>>>         interchange.  Record IV before/after increment in new parameters.
>>>         * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration.
>>>         * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction
>>>         path check into...
>>>         (check_reduction_path): ...New function here.
>>>         * tree-vectorizer.h (check_reduction_path): New declaration.
>>>
>>> gcc/testsuite
>>> 2017-12-07  Bin Cheng  <bin.ch...@arm.com>
>>>             Richard Biener  <rguent...@suse.de>
>>>
>>>         PR tree-optimization/81303
>>>         * gcc.dg/tree-ssa/loop-interchange-1.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-1b.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-2.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-3.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-4.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-5.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-6.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-7.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-8.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-9.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-10.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-11.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-12.c: New test.
>>>         * gcc.dg/tree-ssa/loop-interchange-13.c: New test.

Reply via email to