From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23821 invoked by alias); 27 Oct 2016 13:31:17 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 23807 invoked by uid 89); 27 Oct 2016 13:31:17 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=kyrylo, Kyrylo, slight, sk:kyrylo X-HELO: mx2.suse.de Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 27 Oct 2016 13:31:06 +0000 Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 56782AC29; Thu, 27 Oct 2016 13:31:04 +0000 (UTC) Date: Thu, 27 Oct 2016 13:31:00 -0000 From: Richard Biener To: Kyrill Tkachov cc: GCC Patches Subject: Re: [PATCH] GIMPLE store merging pass In-Reply-To: <580E2130.50002@foss.arm.com> Message-ID: References: <580E2130.50002@foss.arm.com> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2016-10/txt/msg02258.txt.bz2 On Mon, 24 Oct 2016, Kyrill Tkachov wrote: > Hi all, > > This is a slight update over [1] with Richard's feedback addressed. > In terminate_all_aliasing_chains we now terminate the chain early if > the destination is writing to a base offset by a variable amount. > This avoids walking the store chain and performing more alias checks. > > The param max-stores-to-merge is introduced to limit the number of statements > we merge. Its default value is set to 64 which should be enough for now and > avoids > blowing up compile time in cases such as [2]. > > I've also introduced a timevar for the pass to allow us to track it in > -ftime-report. > > Bootstrapped and tested on aarch64, arm, x86_64. > > Ok? Ok if you add documentation for the two new --params. Thanks, Richard. > Thanks, > Kyrill > > [1] https://gcc.gnu.org/ml/gcc-patches/2016-10/msg01459.html > [2] https://gcc.gnu.org/ml/gcc-patches/2016-10/msg01880.html > > 2016-10-24 Kyrylo Tkachov > > 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. > * fold-const.h (can_native_encode_type_p): Declare prototype. > * fold-const.c (can_native_encode_type_p): Define. > * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Define. > (PARAM_MAX_STORES_TO_MERGE): Likewise. > * timevar.def (TV_GIMPLE_STORE_MERGING): New timevar. > * 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-10-24 Kyrylo Tkachov > Jakub Jelinek > Andrew Pinski > > 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. > * g++.dg/init/new17.C: Likewise. > -- Richard Biener SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)