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 GCC]Introduce loop interchange pass and enable it at -O3


On Thu, Dec 7, 2017 at 12:55 PM, Bin.Cheng <amker.cheng@gmail.com> wrote:
> On Thu, Dec 7, 2017 at 11:39 AM, Richard Biener
> <richard.guenther@gmail.com> wrote:
>> On Thu, Dec 7, 2017 at 11:28 AM, Bin Cheng <Bin.Cheng@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.cheng@arm.com>
>>>             Richard Biener  <rguenther@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.cheng@arm.com>
>>>             Richard Biener  <rguenther@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.


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