On 28/09/16 16:59, Bill Schmidt wrote:
On Sep 28, 2016, at 10:54 AM, Kyrill Tkachov <kyrylo.tkac...@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.
Thanks!
Kyrill
Much obliged,
Bill
Thanks,
Kyrill
2016-09-28 Kyrylo Tkachov <kyrylo.tkac...@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.tkac...@arm.com>
Jakub Jelinek <ja...@redhat.com>
Andrew Pinski <pins...@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>