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.