[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