From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 38941 invoked by alias); 27 Jun 2016 23:51:18 -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 38921 invoked by uid 89); 27 Jun 2016 23:51:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=Separate, Previous, Hx-languages-length:2535 X-HELO: gate.crashing.org Received: from gate.crashing.org (HELO gate.crashing.org) (63.228.1.57) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Mon, 27 Jun 2016 23:51:06 +0000 Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.13.8) with ESMTP id u5RNp2S0003463; Mon, 27 Jun 2016 18:51:02 -0500 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id u5RNp17c003462; Mon, 27 Jun 2016 18:51:01 -0500 Date: Tue, 28 Jun 2016 00:22:00 -0000 From: Segher Boessenkool To: gcc-patches@gcc.gnu.org Cc: dje.gcc@gmail.com Subject: PING Re: [PATCH 0/9] separate shrink-wrapping Message-ID: <20160627235101.GF27655@gate.crashing.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-IsSubscribed: yes X-SW-Source: 2016-06/txt/msg01847.txt.bz2 Ping. On Wed, Jun 08, 2016 at 01:47:31AM +0000, Segher Boessenkool wrote: > This patch series introduces separate shrink-wrapping. > > There are many things the prologue/epilogue of a function do, and most of > those things can be done independently. For example, most of the time, > for many targets, the save of callee-saved registers can be done later > than the "main" prologue. > > Doing so helps quite a bit because the prologue is expensive for functions > that do not need everything it does done for every path through the > function; often, the hot paths do not need much at all, e.g. not those > things the prologue needs to do for the function to call other functions. > > The first patch creates a command-line flag, some hooks, a status flag > ("is this function wrapped separately", used by later passes), and > documentation for these things. > > The next six patches are to prevent later passes from mishandling the > epilogue instructions that now appear before the epilogue: mostly, you > cannot do much to instructions with a REG_CFA_RESTORE note without > confusing dwarf2cfi. The cprop one is for prologue instructions. > > Then, the main patch. And finally a patch for PowerPC that implements > separate wrapping for GPRs and LR. > > Tested on powerpc64-linux (-m32/-m64, -mlra/-mno-lra), and on > powerpc64le-linux. Previous versions of this series also tested on > x86_64-linux. > > Is this okay for trunk? > > > Segher > > > Segher Boessenkool (9): > separate shrink-wrap: New command-line flag, status flag, hooks, and doc > cfgcleanup: Don't confuse CFI when -fshrink-wrap-separate > dce: Don't dead-code delete separately wrapped restores > regrename: Don't rename restores > regrename: Don't run if function was separately shrink-wrapped > sel-sched: Don't mess with register restores > cprop: Leave RTX_FRAME_RELATED_P instructions alone > shrink-wrap: shrink-wrapping for separate concerns > rs6000: Separate shrink-wrapping > > gcc/cfgcleanup.c | 5 + > gcc/common.opt | 4 + > gcc/config/rs6000/rs6000.c | 257 ++++++++++++++++-- > gcc/dce.c | 9 + > gcc/doc/invoke.texi | 11 +- > gcc/doc/tm.texi | 53 ++++ > gcc/doc/tm.texi.in | 29 ++ > gcc/emit-rtl.h | 4 + > gcc/function.c | 15 +- > gcc/regcprop.c | 3 + > gcc/regrename.c | 12 +- > gcc/sel-sched-ir.c | 1 + > gcc/shrink-wrap.c | 647 +++++++++++++++++++++++++++++++++++++++++++++ > gcc/shrink-wrap.h | 1 + > gcc/target.def | 56 ++++ > 15 files changed, 1088 insertions(+), 19 deletions(-) > > -- > 1.9.3