From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 55862 invoked by alias); 19 May 2016 22:00:35 -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 55845 invoked by uid 89); 19 May 2016 22:00:34 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=awful, Hx-languages-length:1570, unreasonable, watch X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Thu, 19 May 2016 22:00:24 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EB802C05B1E4; Thu, 19 May 2016 22:00:22 +0000 (UTC) Received: from localhost.localdomain (ovpn-116-172.phx2.redhat.com [10.3.116.172]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u4JM0M23030227; Thu, 19 May 2016 18:00:22 -0400 Subject: Re: [PATCH 3/3] function: Restructure *logue insertion To: Segher Boessenkool , gcc-patches@gcc.gnu.org References: <213485283eede9da12b217737d95fc8f5c4be442.1463428211.git.segher@kernel.crashing.org> <70c67b8f39aca9cf574f617fbfce43b93e2560ff.1463428211.git.segher@kernel.crashing.org> From: Jeff Law Message-ID: <5236cc2d-fb6b-351d-2c9f-1c1419ddcf8a@redhat.com> Date: Thu, 19 May 2016 22:00:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: <70c67b8f39aca9cf574f617fbfce43b93e2560ff.1463428211.git.segher@kernel.crashing.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2016-05/txt/msg01580.txt.bz2 On 05/16/2016 07:09 PM, Segher Boessenkool wrote: > This patch restructures how the prologues/epilogues are inserted. Sibcalls > that run without prologue are now handled in shrink-wrap.c; it communicates > what is already handled by setting the EDGE_IGNORE flag. The > try_shrink_wrapping function then doesn't need to be passed the bb_flags > anymore. > > Tested like the previous two patches; is this okay for trunk? > > > Segher > > > 2016-05-16 Segher Boessenkool > > * function.c (make_epilogue_seq): Remove epilogue_end parameter. > (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure > code. Ignore sibcalls on EDGE_IGNORE edges. > * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE > on edges for sibcalls that run without prologue. The rest of the > function is combined from... > (fix_fake_fallthrough_edge): ... this, and ... > (try_shrink_wrapping): ... a part of this. Remove the bb_with > function argument, make it a local variable. For some reason I found this patch awful to walk through. In retrospect, it might have been better break this down further. Not because it's conceptually difficult to follow, but because the diffs themselves are difficult to read. I kept slicing out hunks when I could pair up the original code to its new functional equivalent and hunks which were just "fluff" and kept iterating until there was nothing left that seemed unreasonable. OK for the trunk, but please watch closely for any fallout. jeff