[PATCH][v4] GIMPLE store merging pass

Bill Schmidt wschmidt@linux.vnet.ibm.com
Wed Sep 28 16:07:00 GMT 2016


On Sep 28, 2016, at 10:54 AM, Kyrill Tkachov <kyrylo.tkachov@foss.arm.com> wrote:
> 
> Hi all,
> 
> This is v4 of the pass. It addresses feedback by Bernhard, including typo fixes and
> skipping of debug statements.
> Also, I've extended it to handle the case from PR 23684 and included that testcase
> in the patch.  Merging now triggers more often.
> I've also added purging of dead EH edges that was missing from the previous versions.
> 
> Bootstrapped and tested on aarch64-none-linux-gnu, x86_64-unknown-linux-gnu, arm-none-linux-gnueabihf.
> Also tested on aarch64 big-endian.
> 
> I saw no regressions on my x86_64 machine on SPEC2006. I think the changes in individual benchmarks were
> in the noise though I think the x86_64 expanders could be improved to split expensive movabsq instructions
> into two movl ones (I think).
> 
> Bill, could you or someone else with access to Power benchmarking try this patch out on some benchmarks
> that you usually use? The new pass in this patch is on by default and can be turned off by -fno-store-merging
> if needed.  Jakub indicated that his last attempt at this work caused regressions on powerpc so I'd like to
> see if this patch is okay in that regard.

Hi Kyrill, 

Thanks for the heads-up!  I will have someone on my team look at this as soon as possible.

Much obliged,

Bill

> 
> Thanks,
> Kyrill
> 
> 2016-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
> 
>    PR middle-end/22141
>    * Makefile.in (OBJS): Add gimple-ssa-store-merging.o.
>    * common.opt (fstore-merging): New Optimization option.
>    * opts.c (default_options_table): Add entry for
>    OPT_ftree_store_merging.
>    * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Define.
>    * passes.def: Insert pass_tree_store_merging.
>    * tree-pass.h (make_pass_store_merging): Declare extern
>    prototype.
>    * gimple-ssa-store-merging.c: New file.
>    * doc/invoke.texi (Optimization Options): Document
>    -fstore-merging.
> 
> 2016-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
>            Jakub Jelinek  <jakub@redhat.com>
>            Andrew Pinski  <pinskia@gmail.com>
> 
>    PR middle-end/22141
>    PR rtl-optimization/23684
>    * gcc.c-torture/execute/pr22141-1.c: New test.
>    * gcc.c-torture/execute/pr22141-2.c: Likewise.
>    * gcc.target/aarch64/ldp_stp_1.c: Adjust for -fstore-merging.
>    * gcc.target/aarch64/ldp_stp_4.c: Likewise.
>    * gcc.dg/store_merging_1.c: New test.
>    * gcc.dg/store_merging_2.c: Likewise.
>    * gcc.dg/store_merging_3.c: Likewise.
>    * gcc.dg/store_merging_4.c: Likewise.
>    * gcc.dg/store_merging_5.c: Likewise.
>    * gcc.dg/store_merging_6.c: Likewise.
>    * gcc.dg/store_merging_7.c: Likewise.
>    * gcc.target/i386/pr22141.c: Likewise.
>    * gcc.target/i386/pr34012.c: Add -fno-store-merging to dg-options.
> <store-merging.patch>



More information about the Gcc-patches mailing list